/* 返回顶部 */
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 19 下一页
摘要: gate 二维树状数组,区间修改,区间查询 对于区间$(x,y)$,用差分数组来维护,每次从$(1,1)$加到$(i,j)$ 可以发现,$t[1][1]$被加了$x*y$次,$t[1][2]$被加了$(x-1)*y$次… 那么区间$(x,y)$的和即为 $∑i=(1,x)∑j=(1,y)$ $t[i 阅读全文
posted @ 2019-11-12 16:40 Mogeko 阅读(245) 评论(0) 推荐(0) 编辑
摘要: gate 并查集! 对于一段区间(L,R),若有奇数个一,则(1,L-1)和(1,R)奇偶性一定不同,反之亦然。 把奇偶性相同的区间连起来。 如果将i和i+N视为相反的状态, 假设A和B的奇偶性相同,则合并A,B,A+N,B+N。 不同,则合并A.B+N,A+N,B。 那么,每次给出一个回答,合并前 阅读全文
posted @ 2019-11-12 14:02 Mogeko 阅读(184) 评论(0) 推荐(0) 编辑
摘要: gate 区间修改,单点查询 用差分维护。 因为查询返回了(1,x)的和,所以查询的时候直接查x就可以了。 至于修改,就要在区间开始加上,结尾减去,即(x,k),(y,-k) 代码如下 #include<cstdio> #include<iostream> #include<cmath> #incl 阅读全文
posted @ 2019-11-11 19:49 Mogeko 阅读(136) 评论(0) 推荐(0) 编辑
摘要: gate 二维树状数组板子?qwq 注意下标不要从0开始 代码如下 #include<cstdio> #include<iostream> #include<cmath> #include<cstring> #define MogeKo qwq using namespace std; #defin 阅读全文
posted @ 2019-11-11 15:10 Mogeko 阅读(183) 评论(0) 推荐(0) 编辑
摘要: gate 矩阵乘法加速模板qwq 感觉比之前写的好看了点 代码如下 #include<cstdio> #include<iostream> #include<cmath> #include<cstring> #define MogeKo qwq #define int long long using 阅读全文
posted @ 2019-11-09 07:47 Mogeko 阅读(175) 评论(0) 推荐(1) 编辑
摘要: gate 和我签订契约,成为马猴烧酒吧! 这题还挺有趣的... 区间dp(没想到吧) 设当前的Witch串为s f[x][i][j]代表字符x是否能克制s中的区间(i,j) 在dp的过程中,因为x只有'A'-'Z'26种,所以这里就直接暴力枚举。 而x的克制或孵化规则,一共也只有20种,所以也直接枚 阅读全文
posted @ 2019-11-08 17:46 Mogeko 阅读(227) 评论(0) 推荐(1) 编辑
摘要: gate 题意:f(n)表示n的约数的和。给定x,y,求f(x)+f(x+1)+...+f(y)。 暴力枚举显然不行。 枚举一个数的约数会有很多重复的,考虑改为求1~n的倍数 (n/i)表示1~n中i的倍数的个数(i,2i,3i...(n/i)i) 即 f(n) = Sum((n/i)*i) (i= 阅读全文
posted @ 2019-11-07 23:20 Mogeko 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 组合数公式: 通项: $C(n,m) = n!/(m!*(n-m)!)$ 递推: $C(n,m) = C(n-1,m-1)+C(n-1,m)$ Lucas定理: 适用于p是质数,且p较小的情况 $Lucas(n,m) = Lucas(n/p,m/p) * C(n$ $mod$ $p,m$ $mod$ 阅读全文
posted @ 2019-11-06 23:55 Mogeko 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 通项 $f(n)=C(2n,n)/(n+1)$ 递推 $f(n)=f(n-1)*2(2n-1)/(n+1)$ $f(n)=C(2n,n)-C(2n,n+1)$ 其前几项为(从第零项开始) : $1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 5878 阅读全文
posted @ 2019-11-06 22:44 Mogeko 阅读(124) 评论(0) 推荐(0) 编辑
摘要: gate 区间dp+博弈论 设j = i+len-1,f[i][len]表示以i为起点,长度为len(j为终点)的区间能取得的最大价值。 状态转移方程:f[i][len] = max(sum[i][j]-f[i+1][len-1],sum[i][j]-f[i][len-1]) 即取左面的或者右面的。 阅读全文
posted @ 2019-11-06 20:27 Mogeko 阅读(175) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 19 下一页