摘要: 老是想着化简,实际上O(n^3)就行了…… 写成生成函数是\\( \prod_{i=1}^{n}(1+x^i+2^{2i}+...+x^{ \left \lfloor \frac{n}{i} \right \rfloor }) \\),暴力乘即可 cpp include include using 阅读全文
posted @ 2018-11-25 22:01 lokiii 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 首先根据生成函数的套路,这个可以写成: $$ \prod_{i=1}^{n}(1+x^1+x^2+...+x^{c[i]}) $$ 然后化简 $$ =\prod_{i=1}^{n}\frac{1 x^{c[i]+1}}{1 x} $$ $$ =\prod_{i=1}^{n}\frac{1}{1 x} 阅读全文
posted @ 2018-11-25 21:37 lokiii 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 这个输出可是有点恶心啊……WA\ inf,最后抄了别人的输出方法orz 还有注意会爆long long,要开unsigned long long 对于k==1,单独考虑每一位i,如果这一位为1则有0.5的概率贡献1 include include using namespace std; const 阅读全文
posted @ 2018-11-25 17:24 lokiii 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 先按魔力值从大到小排序,然后从大到小插入线性基中,如果插入成功就加上这个魔力值 因为线性基里是没有异或和为0的集合的,所以正确性显然,然后最优性,考虑放进去一个原来没选的,这样为了可行性就要删掉一个,又因为是从大到小加进去的,所以删掉的这个魔力值一定是大于加进去的,所以不优,所以贪心构造的就是最优解 阅读全文
posted @ 2018-11-25 11:20 lokiii 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 建回文自动机,注意到一个回文串是可以通过一个长度小于等于这个串长度的一半的回文串添上一些字符然后复制得到的,也就是在自动机上向fa走,相当于treedp 每次都走显然会T,记录一个up,指向祖先中最下长度符合要求的回文后缀,这样每次找最多跳一次,所以是O(n)的,还有child的清空动态的做,也就是 阅读全文
posted @ 2018-11-25 08:18 lokiii 阅读(141) 评论(0) 推荐(0) 编辑