随笔分类 -  算法竞赛

上一页 1 ··· 4 5 6 7 8
摘要:模版 namespace Combinatory { #define COMBINATORY_AUTO_INIT // MOD must be a prime and bigger than MAXN static const int MOD = 1e9 + 7; static const int 阅读全文
posted @ 2020-11-15 13:40 purinliang 阅读(313) 评论(0) 推荐(0)
摘要:\(i\) 的最小质因数 \(pm[i]\) 。 \(i\) 的最大的最小质因数的幂 \(pk[i]\) 。 判断 \(i\) 是不是质数的充要条件为 \(i>1 \; and \; pm[i]=i\) const int MAXN = 1e6 + 10; int p[MAXN], ptop; in 阅读全文
posted @ 2020-11-10 17:39 purinliang 阅读(166) 评论(0) 推荐(0)
摘要:取石子游戏,每次移动可以取 $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 阅读(103) 评论(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 阅读(151) 评论(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 阅读(119) 评论(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 阅读(681) 评论(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 阅读(565) 评论(0) 推荐(0)
摘要:这个是整数分解PollardRho算法。不是离散对数PollardRho算法,在竞赛里面离散对数一般使用BSGS算法解决,虽然消耗一些空间,但是复杂度稳定。 快速乘可以替换成其他正确形式的乘法。 MR可以适当去掉一些,例如只使用2,7,61。 每次调用PR返回其中一个非1的因子,所以在外面套一层ge 阅读全文
posted @ 2020-09-16 00:50 purinliang 阅读(614) 评论(0) 推荐(0)
摘要:原理 目标:检测某个较大的正整数 \(n\) 是否为质数。 证明: 若 \(n \leq 2\) 则直接给出结果。否则,若 \(n\) 为偶数,也直接给出结果。 否则,假设 \(n\) 为奇质数,显然 \(n-1\) 为偶数,可以写成 $2^sd$ 的形式,其中 \(s\) 是正整数,而 \(d\) 阅读全文
posted @ 2020-09-16 00:02 purinliang 阅读(344) 评论(0) 推荐(0)
摘要:真是复杂呢。 阅读全文
posted @ 2020-09-15 16:15 purinliang 阅读(178) 评论(0) 推荐(0)
摘要:哈希的错误概率 常见的大质数:1000000007,998244353,19260817 不常见的大质数:32582657, 37156667, 42643801, 43112609(梅森质数) 一般取模数为 1e9+7 或者998244353,BASE值选233或者311。 当n为1e6时,模数在 阅读全文
posted @ 2020-09-15 16:12 purinliang 阅读(610) 评论(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 阅读(139) 评论(0) 推荐(0)
摘要:简介 用一下google随手搜索的一张图。 首先要理解其中每个节点存储的都是一个连续区间的和。 实际上就是一棵线段树把每个节点的右子树直接剪除的结果。 Add操作的时候,从当前编号的叶子节点开始(不一定是长度为1的层,但一定是叶子),先修改当前节点,然后每次加上当前的层的长度(也就是lowbit)就 阅读全文
posted @ 2020-09-15 11:59 purinliang 阅读(218) 评论(0) 推荐(0)
摘要:自然数的k次幂求和 \(\sum_{i=1}^{n}i=\frac{i(i+1)}{2}\) 除法取整 编程语言的除法取整默认是向0取整,对于非负整数来说,即向下取整。也就是说, \(\lfloor \frac{x}{y} \rfloor = x/y\) 。非负整数的向上取整需要加上分母-1的值,这 阅读全文
posted @ 2020-09-15 11:41 purinliang 阅读(597) 评论(0) 推荐(0)
摘要:基础 标准头文件等前置模板 语法基础:函数、指针、引用、结构体、类、速通Python 算法基础:模拟、递归、回溯、递推、贪心、二分(整体二分)、三分 排序:选择排序、冒泡排序、插入排序、快速排序、归并排序、桶排序、基数排序、堆排序、希尔排序 高精度整数、位运算、时空复杂度分析 离散化、前缀和和差分、 阅读全文
posted @ 2020-09-15 11:23 purinliang 阅读(2140) 评论(0) 推荐(0)
摘要:多项式插值简介 这部分内容收录在这篇文章中:【数学】多项式插值。 原理 由这 \(n + 1\) 个点,可以构造对应的 \(n + 1\) 个多项式,其中第 \(i\) 的多项式的形式为: \[l_i(x) = \prod\limits_{j = 0, \; j \neq i}^{n} \frac{ 阅读全文
posted @ 2020-09-15 01:27 purinliang 阅读(1042) 评论(0) 推荐(0)

上一页 1 ··· 4 5 6 7 8