上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 68 下一页
摘要: 思路: 普通的DP很好想吧 f[i][j]+=f[i-1][j*s[k]] 前i个数 mod m=j 的个数 m是质数 模数是质数 这就很有趣了 那么我们就求出来原根 所有的数都取指数 搞出生成函数乘法就变成了加法 快速幂+$NTT$就好了 (注意特判零) 阅读全文
posted @ 2017-03-21 08:00 SiriusRen 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 思路: 1.最裸的线段树合并 2. 我们可以观察到子树求一个东西 那我们直接DFS序好了 入队的时候统计一下有多少比他大的 出的时候统计一下 减一下 搞定~ 线段树合并代码: 阅读全文
posted @ 2017-03-21 07:53 SiriusRen 阅读(1264) 评论(0) 推荐(0) 编辑
摘要: 思路: 跟POJ有一道时限挺长的题一模一样 哦 POJ 1904 题解可以看这个(捂脸) http://blog.csdn.net/qq_31785871/article/details/52963278 阅读全文
posted @ 2017-03-21 07:50 SiriusRen 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 思路: 把询问离线下来,查询max和查询min相似,现在只考虑查询max 令sum[l,r,x]表示l到r内的数为左端点,x为右端点的区间询问的答案 那么询问就是sun[l1,r1,r2]-sum[l1,r1,l1-1] 从1到n枚举x,维护区间线段树表示sum[l,r,x],发现从x-1转移到x的 阅读全文
posted @ 2017-03-21 07:47 SiriusRen 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 思路: 通过打表观察 这是个卡特兰数 但是它mod的数不是质数 怎么办呢 把所有数分解质因数好了 线性筛出mindiv 顺着mindiv分解质因数 复杂度$O(nlogn)$ 阅读全文
posted @ 2017-03-21 07:43 SiriusRen 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 思路: 先跑一遍Floyd 更新的时候map[i][j]=map[i][k]+map[k][j] k需要小于i或j 正常建边: 把所有点 拆点-> i,i+n add(x,y,C,E)表示x->y建边 话费为C 容量为E add(S,0,0,k) add(i,j+n,map[i][j],1) add 阅读全文
posted @ 2017-03-21 07:40 SiriusRen 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 思路: Lucas定理的模板题.. 4403 2982 阅读全文
posted @ 2017-03-15 21:21 SiriusRen 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 思路: 一开始以为是真·欧几里德 a,b来回消 (其实用不了那么麻烦) 我们发现 这是一个矩形 求一下整点数 完了.. 要特判 p=q的情况 阅读全文
posted @ 2017-03-15 21:20 SiriusRen 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 思路: Claris大大说了 排序以后 这个可以看成是括号序列 f[i][j][k]表示到了i j个左括号 k个右括号 阅读全文
posted @ 2017-03-15 21:17 SiriusRen 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 思路: 1. 并查集+线段树合并 记得f[LCA]==LCA的时候 f[LCA]=fa[LCA] 2.LCT(并不会写啊...) 阅读全文
posted @ 2017-03-15 21:15 SiriusRen 阅读(204) 评论(0) 推荐(0) 编辑
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 68 下一页