摘要: 很容易想到我们需要这样一个函数f(n)表示的是1~n的数字中在y sequence中的个数,于是可以想到用容斥来做,先假设答案是n然后计算n中y sequence的个数,然后n加上不够的,继续判断,一直迭代求出答案。小技巧:预处理的时候素数设为负数方便判断容斥的时候是应该加还是减。 1 #inclu... 阅读全文
posted @ 2015-08-07 19:59 hxy_has_been_used 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 如果知道树的删边游戏的话,这道题应该是很好做的。树的删边游戏规则如下:1.给出一颗n个结点的树,其中有一个点规定为根。2.两名游戏者轮流操作,每次从树中删去一条边,删去该边后,不与根节点连通的部分将被移走。3.无法操作者输。定理:1.叶子结点的sg值为0;2.分支结点的sg值为其所有子节点的sg值加... 阅读全文
posted @ 2015-08-07 14:44 hxy_has_been_used 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 如果枚举区间的话是O(n^2)的复杂度一定会T,所以考虑每个数a[i]对答案的贡献,则只需找到a[i]的约数中在左边最靠近a[i]的和在右边最靠近a[i]的那两个约数位置,然后扫一遍统计答案即可。 1 #include 2 #include 3 #include 4 using namespa... 阅读全文
posted @ 2015-08-07 13:16 hxy_has_been_used 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 算得上是一个比较复杂的游戏了,解法见论文《解析一类组合游戏》,需要注意的是visit数组要适当开大点防止溢出。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 const int N = 25; 7 int a[N]; ... 阅读全文
posted @ 2015-08-07 12:22 hxy_has_been_used 阅读(177) 评论(0) 推荐(0) 编辑