
2016多校赛
poptree hengli
这个作者很懒,什么都没留下…
展开
-
HDU 5723 Abandoned country(最小生成树+DFS)
给定一个图求其最小生成树,并且算出最小生成树上任意两个点的期望距离 因为题目中说到每条边的边权都是唯一的,所以可以知道最小生成树唯一 然后求期望距离。点的数目非常大所以求出任意两点间距离在算期望距离是不现实的。 但是根据期望的累加性质可以想到,对于每条边,他对期望的贡献是经过他的路径数量*边权。 而经过这条边的数目为这条边左边的点和右边点的积。最后问题转化成统计一棵树上每个点他的子树的点数原创 2016-07-26 14:50:28 · 470 阅读 · 0 评论 -
HDU 5724 Chess(SG函数 Nim博弈)
给定一个n*20的棋盘,在棋盘上有m个棋子,每个棋子的合法移动是当这个棋子右边没有棋子时,将这个棋子移动到右边一格,当右边有棋子时,到其右边下一个位置直到第一个空的位置。 因为棋子的移动只在行上,所以容易想到多堆的nim博弈。因为每行20个空格。所以刚好可以状压枚举所有情况的sg值。 刚开始不知道sg值的范围所以用的是set来保存,结果TLE,最后打表看了一下最大值只有20.。。 最后结果就原创 2016-07-26 14:57:34 · 540 阅读 · 0 评论 -
HDU 5726 GCD(DP+线段树)
给定一个序列,对于每次查询,有多少个连续的子序列gcd等于x到y的序列的gcd an记录不同gcd的数目,cot为滚动map用来记录第i-1位为终止位置的子区间的gcd的种类和数目,然后处理出所有lr范围内的gcd的数目 然后对于每次查询的lr的gcd,用线段树查询一下就好了 #include #include #include #include #include原创 2016-07-26 15:02:49 · 447 阅读 · 0 评论 -
HDU 5727 Necklace(枚举+二分图匹配)
给定n个阴n个阳,按照阴阳的顺序排列问变暗的最少有几个 首先想到的是二分图,因为阴阳很符合二分图的性质。但是很快又把自己否定了,因为前几天的一场 CF有一题是安排时间是去体育馆还是学习的题目当时也觉得是二分图但是搞到结束都没有写出来。所以又感觉这题不是二分图了。。 看了题解,因为只有八个点 ,所以做一次二分图的速度非常快,所以枚举位置9!。对于每种情况做一次二分图匹配,时间复杂度居然也意外的合原创 2016-07-28 09:18:17 · 455 阅读 · 0 评论 -
HDU 5775 Bubble Sort(线段树)
对于给定的程序,要求输出每个数字在程序运行过程中的最左边的位置和最右边的位置的差值 观察程序可知,这个冒泡排序有以下性质: 1.每次将值从小到大的顺序放到正确的位置上 2.对于未排序的数字,他们的顺序和原始数列一致 故我们可以比较容易的发现,每个数字的最右值为 x+(已经出现的比数字x大的数字个数) 而每个数字的最左值为 当前位置,或x #include #include原创 2016-09-09 15:05:07 · 406 阅读 · 0 评论 -
HDU 5763 Another Meaning(KMP+DP)
对于给定的字符串A 以及字符串B 已知B字符串可以被替换 问总共有多少种替换的方式 对于A中存在的B的连续子串,这个显然需要用KMP处理出每个B子串的位置 然后问题变成了dp dp[i]为 前i个字符能够替换的方式 状态转移方程为原创 2016-09-09 15:13:46 · 502 阅读 · 0 评论 -
HDU 5863 cjj's string game(矩阵快速幂)
对于给定的k个不同的字符,问对于用这k个字符构造出的长度为n的字符串,他们的对应位置子串长度最大值为m的数目是多少 对于dp[i][j]=dp[i-1][j-1]*k dp[i][0]=(dp[i-1][0]+dp[i[1]+...+dp[i][m])*(k-1)*k 这几两个公司可以用矩阵来优化 #include #include #include #include原创 2016-11-01 13:34:09 · 444 阅读 · 0 评论