数论
里阿奴摩西
这个作者很懒,什么都没留下…
展开
-
[数论] LOJ #508. 「LibreOJ NOI Round #1」失控的未来交通工具
这种非简单路 一般转化成任意一条路加上若干环 这里大概是任意一条路加上若干环长的gcd 任意一条路 可以弄出任意一颗生成树? 但是这里实际上只需要一个带权并查集 详见官方题解#include<cstdio>#include<cstdlib>#include<algorithm>using namespace std;typedef long long ll;typedef pair<原创 2017-07-23 13:26:30 · 1117 阅读 · 0 评论 -
[数论模板] BZOJ 3667 Rabin-Miller算法
还是发一下吧 以后找版子容易些多年前的代码丑#include#include#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p原创 2016-12-08 20:42:14 · 475 阅读 · 0 评论 -
[离散对数 FFT FastIO] ICPC 2016 Shenyang K & HDU 5958 New Signal Decomposition
特判0 然后将所有下标取对数 那么就是 bk′=∑ah′∗ch′+k′b_{k'}=\sum a_{h'}*c_{h'+k'} 使用FFT解决本来好好的一道题 卡常数+卡空间+卡精度?!#include<cstdio>#include<cstdlib>#include<algorithm>#include<cmath>using namespace std;typedef doubl原创 2017-03-29 07:52:48 · 859 阅读 · 2 评论 -
[暴力] HDU 4473 Exam
abc#include #include #include using namespace std; const double eps(1e-8); typedef long long ll; ll n,ans; int main() { freopen("t.in","r",stdin); freopen("t.out","w",stdo原创 2016-07-18 07:54:47 · 513 阅读 · 0 评论 -
[斐波那契 数学技巧] 洛谷 P1306 斐波那契公约数
gcd(fib[n],fib[m])==fib[gcd(n,m)];#include#include#includeusing namespace std;typedef long long ll;namespace F{ struct Matrix{ ll a,b,c,d; Matrix(ll a=0,ll b=0,ll c=0,ll d=原创 2016-11-14 18:30:24 · 446 阅读 · 0 评论 -
[斐波那契拆分 乱搞 数学] 51Nod 1350 斐波那契表示
可以证明每次选最大的fib数减去一定是最优解之一然后预处理G[fib[i]-1] 额 代码横跨noip前后 意识模糊 一片mess#include#include#include#includeusing namespace std;typedef long long ll;ll fib[205]; int maxn;ll F[205];inline原创 2016-11-23 16:59:52 · 607 阅读 · 0 评论 -
[置换快速幂 中国剩余定理] POJ 1282 庆典的日期
论文:潘震皓--置换群快速幂运算 研究与探讨置换的快速幂题解n2logn#include#include#include#include#define cl(x) memset(x,0,sizeof(x))using namespace std;typedef long long ll;inline char nc(){ static原创 2016-12-08 06:54:57 · 587 阅读 · 0 评论 -
[数论] 51Nod 1217 Minimum Modular & Codeforces 303C #183 (Div. 1) Minimum Modular
N个不同的数a[1],a[2]...a[n],你可以从中去掉K个数,并且找到一个正整数M,使得剩下的N - K个数,Mod M的结果各不相同,求M的最小值。来自讨论帖:http://www.51nod.com/question/index.html#!questionId=994这个题我们可以考虑从小到大枚举m(从max(1,n-k)到max(a[i])+1),然后判断能否原创 2016-11-22 15:46:10 · 830 阅读 · 0 评论 -
[五边形数定理 DP] 51Nod 1259 整数划分 V2 & HDU 4651 Partition
详见:http://blog.csdn.net/acdreamers/article/details/12259815#include#include#includeusing namespace std; typedef long long ll; const int N=50005; const int P=1e9+7;ll F[N],f[N];原创 2016-11-22 15:41:10 · 522 阅读 · 0 评论 -
[数论] 51Nod 1225 余数之和
n%i=n-[n/i]*i#include#include#includeusing namespace std;typedef long long ll;int P=1000000007;int INV=5e8+4;ll n;ll Ans=0;inline ll Sum(ll l,ll r){ return ((l+r)%P)*((r-l+1)%P)%P*原创 2016-11-22 14:27:59 · 510 阅读 · 0 评论 -
[DP 数论] 51Nod 1201 整数划分
dp[i][j] 代表用j个数字的和为i的数的个数dp[i][j] = dp[i - j][j - 1] + dp[i - j][j](不过好像不太对)把所有的数都加上1,然后再额外的给出一个1 或 将现有的每一位加1#include#include#include#includeusing namespace std;const int N=50005;原创 2016-11-22 14:22:49 · 330 阅读 · 0 评论 -
[数论] 51Nod 1189 阶乘分数
(X-N!)(Y-N!) = (N!)^2#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,1原创 2016-11-22 14:18:18 · 307 阅读 · 0 评论 -
[组合数取模] BZOJ 4830 [Hnoi2017]抛硬币
习惯性交换aa和bb 令b≥ab\geq a 首先特判a=ba=b 这时答案为22a−Ca2a2{2^{2a}-C_{2a}^a}\over 2 其实就是所有情况减去平局的情况 剩下的不是A赢就是B赢 且是对称的 那么除以2 ∑Cin∗Cin=∑Cin∗Cn−in=Cn2n\sum C_n^i*C_n^i=\sum C_n^i*C_n^{n-i}=C_{2n}^n然后如果b>a 我们考原创 2017-04-20 07:20:55 · 2167 阅读 · 2 评论 -
[扩展欧拉定理] BZOJ 4869 [Shoi2017]相逢是问候
欧拉定理 aϕ(n)≡1(modn),(a,n)=1a^{\phi(n)} \equiv 1 \pmod n,(a,n)=1 进而有 ab≡abmodϕ(n)(modn),(a,n)=1a^b \equiv a^{b \bmod \phi(n)} \pmod n,(a,n)=1 那么对于aa和nn不互质 我们有扩展欧拉定理 ab≡abmodϕ(n)+ϕ(n)(modn),(a,n)≠1且b≥ϕ原创 2017-05-03 07:40:47 · 1450 阅读 · 0 评论 -
[数论 DAG最长路] Codeforces 772C VK Cup 2017 - Round 2 C. Vulnerable Kerbals
ax≡b(modm)ax\equiv b \pmod m 有解就是 (a,m)|b(a,m) | b 也就是 (a,m)|(b,m)(a,m)|(b,m) 那么把数按照和mm的gcd的整除关系 建成DAG 跑一个最长链#include<cstdio>#include<cstdlib>#include<algorithm>#include<vector>#define pb push_bac原创 2017-06-13 22:26:11 · 503 阅读 · 0 评论 -
[反演 莫队算法] HDU 4676 Sum Of Gcd
考虑对一堆数求一个gcd 我们记录每一个约数xx的出现次数num[x]num[x] 那么两两间gcd的和是什么呢 ∑x∗C2num[x]\sum x*C_{num[x]}^2 肯定不是 这样会有重复 猜想f(x)f(x)是关于x的函数 ∑f(x)∗C2num[x]\sum f(x)*C_{num[x]}^2 那么应该满足 ∑d|xf(d)=x\sum_{d|x} f(d)=x 因为原创 2017-02-01 22:39:26 · 417 阅读 · 0 评论 -
[反演 数论] 51Nod 1355 斐波那契的最小公倍数
我好菜啊 出过一万遍的原题 我怎么第一次看见啊 某乎链接 按照zyz的做法 orzzlcm(fS)==∏T⊆S,T≠∅gcd(fT)(−1)|T|+1∏T⊆S,T≠∅f(−1)|T|+1gcd{T}\begin{eqnarray}\text{lcm}(f_S)&=&\prod_{T\subseteq S,T\neq \emptyset }\text{gcd}(f_T)^{(-1)^{|T|+1原创 2017-06-22 20:56:59 · 1388 阅读 · 1 评论 -
[数论] LOJ #510. 「LibreOJ NOI Round #1」北校门外的回忆
这个题跟树状数组没有半毛钱关系 首先这是一个最低位翻倍的过程,如果这一位最终会变成 00 ,那么步数是 O(logn)O(\log n)的? 要是这一位不能变成 00 ,也就是在环上跑了,似乎跑到环上的步数也是 O(logn)O(\log n)的? 然后就变成了,修改要是跑到 00 就暴力跑,跑到环上,询问照样 设某个修改最早到环上的起点是w+z×kmw+z\times k^m,那么会对 w原创 2017-07-11 22:29:55 · 989 阅读 · 0 评论 -
[数论] Codeforces 819D R #421 D.Mister B and Astronomers & 516E R #292 E. Drazil and His Happy Friends
两道类似的题 819D考虑一个人应该能够观察的位置 ti,(ti+S)modT,(ti+2S)modT⋯t_i,(t_i+S)\bmod T,(t_i+2S)\bmod T\cdots 这个应该是形成 gcd(S,T)\text{gcd}(S,T) 个环,每个环是长度 TgT\over g 然后把同一个环的一起处理,把点放到环上,那么沿环的方向到下一个点为止应该都是归到这个点答案里面的#inc原创 2017-07-11 22:22:39 · 622 阅读 · 0 评论 -
[数位DP Lucas定理] 2017 计蒜之道 复赛 E. 商汤智能机器人
阿爷教导我 ∑∞i=0(Ai)∗(A+B−iA),A=x+y2,B=x−y2\sum _{i=0}^\infty \dbinom{A}{i}*\dbinom{A+B-i}{A},A={x+y\over 2},B={x-y\over2}然后就是数位dp+lucas定理的套路了 注意有减法要处理退位 一开始写的时候考虑的有点问题 调了很久很久 这个可以从低到高 也可以从高到低 因为意识模糊就原创 2017-06-11 08:13:52 · 1638 阅读 · 3 评论 -
[数论 反演] BZOJ 4833 最小公倍佩尔数
当时比赛时灵机一动 把gigi−1g_i\over g_{i-1}喂给了OEIS 然后就找到了 233 就是这个咯 然后就水过去了 题解?题解我还没看 先挖个坑UPD:跟这个题是一毛一样的咯#include<cstdio>#include<cstdlib>#include<algorithm>using namespace std;typedef long long ll;const原创 2017-04-22 20:48:42 · 1400 阅读 · 0 评论 -
[高斯消元 线性基 贪心 拟阵 逆元] BZOJ 4004 [JLOI2015]装备购买
不是很懂拟阵那一套理论#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000原创 2016-07-06 17:37:54 · 406 阅读 · 0 评论 -
[Lucas定理 数位DP 容斥原理] 2015 计蒜之道 复赛 360的产品试用体验
直接上官网题解吧:http://blog.jisuanke.com/?p=146题意即求其中且因为 47 是质数,如果把ai, li, ri, xi 写作 47 进制数因为 47 是质数,根据Lucas定理 ,题目转换为求的值,同时满足:– 字典序不小于 不大于 – x1 + x2 + x3 ≤ n.原创 2016-11-14 12:45:23 · 1009 阅读 · 0 评论 -
[期望与方差 Lucas定理] 算法马拉松25 D 小Q的集合
大概是 ∑Cin∗2∗ik∗(ik−(n−i)k)modm\sum C_n^i*2*i^k*(i^k-(n-i)^k) \bmod m 后面那个东西模mm有循环节 同一组的组合数的和用lucas定理也能化成组合数乘上2的幂#include<cstdio>#include<cstdlib>#include<algorithm>#include<cstring>using namespace原创 2017-05-31 08:36:12 · 805 阅读 · 0 评论 -
[数论] 2017 计蒜之道 初赛 第一场 阿里天池的新任务
我们令子串Ss,tS_{s,t}对应的wsw_s为这个子串的bb 因为互质 所以bb是互不相同的 转为求有几个bb满足条件 然后每一位看作一个限制 把所有限制离散化取交即可 注意处理奇偶性 还有一个细节 s≤n−m+1s \leq n-m+1 我们还要倒着把最后m−1m-1个bb中合法的减掉#include<cstdio>#include<cstdlib>#include<cstring>原创 2017-05-23 20:59:07 · 340 阅读 · 0 评论 -
[求解二次剩余 数论技巧 随机化] Ural 1132 Square Root
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1132以下来自:http://blog.csdn.net/acdreamers/article/details/10182281今天要讨论的问题是解方程,其中是奇质数。 引理: 证明:由费马小定理, 引理:方程有解当且原创 2016-11-06 20:33:58 · 640 阅读 · 0 评论 -
[数论] 51Nod 1040 最大公约数之和
推一推就是sigma d|n d*phi(n/d)那么质因数分解 dfs出所有因数#include#include#includeusing namespace std;typedef long long ll;const int maxn=100000,P=1000000007,Inv=500000004; int prime[maxn+1],vst[maxn原创 2016-11-17 07:35:54 · 372 阅读 · 0 评论 -
[原根 指标 模方程 BSGS] BZOJ 1420 Discrete Root & BZOJ 1319 Sgu261Discrete Roots
求个指标解个方程就好了#include#include#include#include#include#include#define cl(x) memset(x,0,sizeof(x))using namespace std;typedef long long ll;typedef pair abcd;inline char nc(){ static c原创 2016-07-28 08:28:51 · 530 阅读 · 0 评论 -
[阶 原根 指标]BZOJ 2219 数论之神
数论好题,总算把数论这一块遗漏的知识补齐了题解传送:http://blog.csdn.net/regina8023/article/details/44863519http://blog.csdn.net/popoqqq/article/details/415951871.【阶】 满足ax≡1(modp) 的最小的x是a关于p的阶。 记作δ(a)=x原创 2016-02-04 19:50:41 · 1220 阅读 · 0 评论 -
[Baby steps giant steps] BSGS EXT-BSGS
BSGS原创 2016-01-24 16:07:43 · 704 阅读 · 0 评论 -
孙子定理 互质与非互质
互质输入 : x = ai (mod ni) (i=1,2...,k)令: n=n1*n2*.....*nk;mi=n/ni;ci=mi(mi^ -1 mod ni)ans=(a1*c1+a2*c2+......+ak*ck)(mod n)非互质结论: x = a1 (mod n1)x = a2 (mod n2)原创 2015-04-23 16:16:07 · 1472 阅读 · 0 评论 -
[数论] 组合数取模 中国剩余定理 Lucas定理
[数论] 组合数取模 中国剩余定理 Lucas定理原创 2016-01-10 16:34:25 · 1639 阅读 · 0 评论 -
[数学 拉格朗日四平方和定理 Rho大整数分解] BZOJ 2904 平方和
题解:JudgeOnline/upload/201604/sol.docPS linux下RAND_MAX是2^31!!TLE了快一页 另一题4522跟着一起T#include#include#include#include#include#includeusing namespace std;typedef long long ll;inline原创 2016-04-18 18:45:42 · 1653 阅读 · 0 评论 -
[NTT 原根 指标 多项式快速幂] BZOJ 3992 [SDOI2015]序列统计
注意到,M 是质数 乘法取个log变加法 也就是取指标于是对于1 ~M−1 中的每一个数都可以表示成原根的某次幂。于是乘法可以转化为原根的幂的加法,转移的时候就相当于做多项式乘法了然后快速幂又是道数论好题#include#include#include#includeusing namespace std;typedef long long ll;原创 2016-05-29 21:29:31 · 1094 阅读 · 0 评论 -
[数论] ACM 2015 Changchun B Count a*b
题意:题解:#include#include#include#include#include#include#define rep(i,j,k) for(int i=(int)j;i<=(int)k;i++)#define per(i,j,k) for(int i=(int)j;i>=(int)k;i--)using namespace std;原创 2016-07-09 20:33:13 · 682 阅读 · 1 评论 -
[LCT 线性模方程] BZOJ 2759 一个动态树好题 & 4266 小强的动态方程
%%%PoPoQQQ:http://blog.csdn.net/popoqqq/article/details/40436165“题目大意:给定n个形如xi=ki*x_pi+bi mod p的同余方程组 支持修改操作和求解操作确实好题 感谢此题作者 顺便吐槽一下作者的Splay不加空节点太蛋疼了0.0将每个点i的父亲设为pi 我们将会得到一座基环树林 将环上的一条边原创 2016-04-07 18:40:35 · 625 阅读 · 0 评论 -
[数论 博弈论] BZOJ 4147 [AMPPZ2014]Euclidean Nim
大搬运术:http://blog.csdn.net/PoPoQQQ/article/details/46549901#include#include#includeusing namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)原创 2016-05-02 21:18:55 · 329 阅读 · 0 评论 -
[Rho大整数分解] BZOJ 4522 [Cqoi2016]密钥破解
这种裸题 就是Rho的直接应用长点记性啊,linux下RAND_MAX=2^31 狂T啊啊#include#include#include#include#include#includeusing namespace std;typedef long long ll;typedef pair abcd;inline char nc(){ static cha原创 2016-04-18 18:47:13 · 643 阅读 · 0 评论 -
[矩阵 二项式定理 单位根 构造 数学神题] BZOJ 3328 PYXFIB
题解:http://blog.csdn.net/regina8023/article/details/45007551#include#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2原创 2016-06-29 16:51:05 · 1423 阅读 · 0 评论 -
[类欧几里得算法 数论] BZOJ 2987 Earthquake
第一道类欧题 其实是裸题啦手推#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100原创 2016-08-28 07:55:56 · 1458 阅读 · 0 评论