摘要: 取石子游戏,每次移动可以取 $1,2,k$ 个石子,无法移动则输。 int k; int sg[1005]; int SG(int x) { if(sg[x] != -1) return sg[x]; int res = 0; if(x >= 1) res |= 1 << SG(x - 1); if 阅读全文
posted @ 2020-11-10 11:29 purinliang 阅读(91) 评论(0) 推荐(0) 编辑
摘要: BSGS算法 求解 \(a^x\equiv b (\mod m)\) 其中 \(gcd(a,m)=1\) 。 随便取一个 \(x_1\) ,则可以把 \(x\) 通过 \(x=kx_1-x_2\) 替换,其中 \(x_2<x_1\) 。则 \(a^{kx_1-x_2}\equiv b (\mod m 阅读全文
posted @ 2020-11-08 18:21 purinliang 阅读(104) 评论(0) 推荐(0) 编辑
摘要: #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<int, pii> pipii; ll LINF = 0x3F3F3F3F3F3F3 阅读全文
posted @ 2020-10-27 14:43 purinliang 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 普通的FNTT,输入两个多项式A[]和B[],A[i]表示多项式A的x^i的系数。 然后直接Convoluton,默认是使用A[]存放输出的结果,B[]可以视情况回收。 ```cpp namespace FNTT { const int MOD = 998244353; const int G = 阅读全文
posted @ 2020-09-22 01:06 purinliang 阅读(605) 评论(0) 推荐(0) 编辑
摘要: 来源的claris的模板,应该按我的水平不能超过claris。 质数的0次方和,也就是质数个数。 已通过wolfram alpha验证。 int mod; inline ll add_mod(ll x, ll y) { return (x + y >= mod) ? (x + y - mod) : 阅读全文
posted @ 2020-09-21 00:23 purinliang 阅读(537) 评论(0) 推荐(0) 编辑
摘要: 这个是整数分解PollardRho算法。不是离散对数PollardRho算法,在竞赛里面离散对数一般使用BSGS算法解决,虽然消耗一些空间,但是复杂度稳定。 快速乘可以替换成其他正确形式的乘法。 MR可以适当去掉一些,例如只使用2,7,61。 每次调用PR返回其中一个非1的因子,所以在外面套一层ge 阅读全文
posted @ 2020-09-16 00:50 purinliang 阅读(577) 评论(0) 推荐(0) 编辑
摘要: 原理 目标:检测某个较大的正整数 \(n\) 是否为质数。 证明: 若 \(n \leq 2\) 则直接给出结果。否则,若 \(n\) 为偶数,也直接给出结果。 否则,假设 \(n\) 为奇质数,显然 \(n-1\) 为偶数,可以写成 $2^sd$ 的形式,其中 \(s\) 是正整数,而 \(d\) 阅读全文
posted @ 2020-09-16 00:02 purinliang 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 真是复杂呢。 阅读全文
posted @ 2020-09-15 16:15 purinliang 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 哈希的错误概率 常见的大质数:1000000007,998244353,19260817 不常见的大质数:32582657, 37156667, 42643801, 43112609(梅森质数) 一般取模数为 1e9+7 或者998244353,BASE值选233或者311。 当n为1e6时,模数在 阅读全文
posted @ 2020-09-15 16:12 purinliang 阅读(475) 评论(0) 推荐(0) 编辑
摘要: 单点修改,区间求和 已验证: https://www.luogu.com.cn/problem/P3374 (单点修改,区间求和) rt[i]: i位置所属的块的序号 va[i]: i位置的值 lb[b]: 序号b的块的左边界的位置 rb[b]: 序号b的块的左边界的位置 sm[b]: 序号b的块的 阅读全文
posted @ 2020-09-15 12:56 purinliang 阅读(131) 评论(0) 推荐(0) 编辑