数论
loveicecola
AFO
展开
-
0/1分数规划+二分的思考
首先,二分再次强调一回。二分有两种写法:while(l<r){ int mid=l+r>>1; if(check(mid)) l=mid+1; else r=mid; }while(l<r){ int mid=l+r+1>>1; if(check(mid)) l=mid; else r=mid-1; }不管咋样,都是这两种格式。记住就好。然后具体用哪一个,按照实际情况来。实数二分同样如此,只不过1变成了eps。一般直接for循环100次就好,精度肯定够用了。0/.原创 2020-09-29 20:25:44 · 222 阅读 · 0 评论 -
欧拉定理
费马小定理若p是质数,则对于任意整数a,有ap=a(mod p)a^p=a(mod~ p)ap=a(mod p)。欧拉定理若正整数a,m互质,则aφ(p)=1(mod p)a^{\varphi(p)}=1(mod~p)aφ(p)=1(mod p)。欧拉定理的推论有针对a,m互质的推论,不过我们直接说扩展的。即m为任意数。if(b&...原创 2019-03-28 20:49:10 · 2088 阅读 · 0 评论 -
[BZOJ2839]集合记数 容斥原理
BZOJ2839一个有N个元素的集合有2N2^{N}2N个不同子集(包含空集),现在要在这2N2^N2N个集合中取出若干集合(至少一个),使得它们的交集的元素个数为KKK,求取法的方案数,答案模1000000007。交集元素个数至少为KKK的方案数好求,恰好元素个数为KKK的方案数不好求。设f[k]f[k]f[k]表示至少为KKK的方案数,g[k]g[k]g[k]表示恰好为KKK的方案数。...原创 2019-03-27 16:43:41 · 230 阅读 · 0 评论 -
[SDOI2010古代猪文] Lucas定理+CRT合并
SDOI2010ans=p∑d∣nCnd%999911659ans=p^{\sum_{d|n}C_{n}^{d}}\%999911659ans=p∑d∣nCnd%999911659n,p<=1e9n,p<=1e9n,p<=1e9。直接预处理阶乘肯定不行。首先根据欧拉定理的推论,ans=p∑d∣nCnd%999911658%999911659ans=p^...原创 2019-03-30 20:24:41 · 184 阅读 · 0 评论 -
bsgs及exbsgs
bsgsbsgsbsgsAx≡B(mod C),gcd(A,C)=1A^x\equiv B(mod~C),gcd(A,C)=1Ax≡B(mod C),gcd(A,C)=1t=C,x=i∗t−j,Ait−j≡B(mod C)t=\sqrt{C},x=i*t-j,A^{it-j}\equiv B(mod~C)t=C,x=i∗t−j,Ait−j≡B(mod ...原创 2019-04-04 10:21:00 · 191 阅读 · 0 评论 -
CRT&EXCRT 中国剩余定理及其扩展
中国剩余定理(孙子定理)有这样一个问题:{x≡a1(mod m1)x≡a2(mod m2)……x≡an(mod mn)\begin{cases}x\equiv a_1(mod~m_1)\\x\equiv a_2(mod~m_2)\\……\\x\equiv a_n(mod~m_n)\end{cases}⎩⎪⎪⎪⎨⎪⎪⎪⎧x≡a1(mod m...原创 2019-04-04 08:22:23 · 285 阅读 · 0 评论 -
二项式反演
前置技能:二项式定理定理:(a+b)n=∑k=0nCnkakbn−k(a+b)^n=\sum_{k=0}^{n}C_{n}^{k} a^k b^{n-k}(a+b)n=∑k=0nCnkakbn−k。证明:(数学归纳法)(a+b)1=a+b=∑k=01C1kakb1−k(a+b)^1=a+b=\sum_{k=0}^{1}C_{1}^{k}a^kb^{1-k}(a+b)1=a+b=∑k...原创 2019-03-21 20:40:08 · 487 阅读 · 0 评论 -
YY的GCD
Ac链接题目描述:神犇YY虐完数论后给傻×kAc出了一题 给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对 kAc这种傻×必然不会了,于是向你来请教…… 多组输入(大概也就一万组吧……)解决本题需要了解莫比乌斯反演的知识,所以先来普及知识点(最为枯燥的部分,但忍下去)。莫比乌斯函数:莫比乌...原创 2019-03-14 14:59:54 · 484 阅读 · 0 评论 -
杜教筛
我来填坑啦!(摘录自pengym大佬博客)前置技能:各种积性函数我们平时所惯用的数论函数都是积性函数。积性函数的定义:如果已知一个函数为数论函数,且f(1)=1f(1)=1f(1)=1,并且满足以下条件,若对于任意的两个互质的正整数p,qp,qp,q都满足f(p∗q)=f(p)∗f(q)f(p*q)=f(p)*f(q)f(p∗q)=f(p)∗f(q),那么称这个函数为积性函数。特殊的...原创 2019-03-14 14:58:32 · 2967 阅读 · 0 评论 -
BZOJ 4476送礼物
题目大意:一个整数序列n,给定一个长度范围L~R,给定一个K,让求一个ans,ans=max(ans,(max(l,r)-min(l,r))/(r-l+k))。r-l+1在L到R之内。 仔细分析这是一道分数规划题目。首先这个答案肯定是单调的,我们可以二分答案,把求最优值的问题转化为判定性问题。那么我们只差一个check函数。我们二分一个mid,如果不考虑区间长度在L到R之内的话,...原创 2018-11-05 21:17:03 · 178 阅读 · 0 评论 -
poj 1830 开关问题
这道题是个十分有趣的数学题。有n个开关,这n个开关两两之间可能有着关系,如果有关系,按下这个开关,另一个开关的状态也会改变。先给你n个开关的初始状态,再给你n个开关的最终状态,然后告诉你开关之间的关系,问你能不能通过调整开关使达到最终状态,如果能,求方案的数量。 我们用0,1分别表示开关的两个不同状态,对于每个开关,我们知道其他的n-1个开关与它的关系。这个开关是通过哪个状态变成...原创 2018-08-20 20:26:54 · 289 阅读 · 0 评论 -
高斯消元
高斯消元思路很简单,就是有m个n元一次的方程组,让我们求解出n个未知数的解。思路就是:每次先把一个方程作为对象,然后和剩下的方程进行消减,将剩下的方程中的某一个未知数的系数变为0,形成一个新的方程。依次消除之后,我们剩下的方程组就是一个倒立直角三角形,最后一个方程只剩下一个未知项的系数,那么我们可以得出这个未知数的解,再往回带,就依次求出了所有的解。 当然,有时候题目给我们的m个方程组是...原创 2018-08-11 14:42:48 · 142 阅读 · 0 评论 -
中国剩余定理与与拓展
#include<bits/stdc++.h>using namespace std;int n,lcm=1,A,M,a[105],m[105];int exgcd(int a,int b,int&x,int&y){ if(b==0) { x=1,y=0;return a; } int d=exgcd(b,a%b,x,y); int k=x;x=y...原创 2018-08-02 09:57:16 · 201 阅读 · 0 评论 -
乘法逆元
定义:如果a*x=1(mod m),那么称x是a的模m乘法逆元。 求法:(1)利用费马小定理。若m是质数,a^(m-1)=1(mod m),所以a*a^(m-2)=1(mod m),那么a的模m乘法逆元就是a^(m-2)。当然这种求法仅限于m为质数。(2)利用扩展欧几里得求。a*x=1(mod m)等价于 a*x+m*y=1,我们要做的就是求出x的解。因为只有1是gcd的倍数时,...原创 2018-08-01 18:27:18 · 593 阅读 · 0 评论 -
矩阵乘法
首先,矩阵乘法的定义:设A是n*m的矩阵,B是m*p的矩阵,C=A*B是一个n*p的矩阵,并且对于任意∈【1,n】,j∈【1,p】,C[i][j]=∑A(i,k)*B(k,j)。也就是说,参加矩阵乘法的第一个矩阵的列数必须等于第二个矩阵的行数。结果矩阵C的一个点i,j是矩阵A的第i行和矩阵B的第j列上的数分别相乘所得积的和。由此我们可以看出,矩阵乘法支持乘法结合律,即A*B*C=A*(B*C)...原创 2018-08-09 19:00:58 · 999 阅读 · 0 评论 -
HDU5187 Contest
题目描述:zhx认为一个漂亮的序列 {an} 下列两个条件均需满足:1)a1~ai是单调递减或者单调递增的2)ai~an是单调递减或者单调递增的他想你告诉他有多少种排列是漂亮的因为答案很大,所以只需要输出答案模 P 之后的值 分析:首先单调递增和单调递减这是两种情况;然后还有先增后减,先减后增的情况,对此我们需要先确定一个最大值或者最小值。将最大...原创 2018-07-28 12:50:16 · 191 阅读 · 0 评论 -
快速幂
#include<bits/stdc++.h>using namespace std;int a,b,k,ans;int Power(int a,int b){ ans=1%k; for(;b;b>>=1){ if(b&1) ans=(long long)ans*a%k; a=(long long)a*a%k...原创 2018-07-19 16:30:37 · 95 阅读 · 0 评论 -
Visible Lattice Points--Poj 3090
题目描述:一个N*N的方格,左下角坐标为(0,0),右上角为(N,N)。除了(0,0)之外任意的(x,y)上都有一个钉子,问你站在(0,0)最多看到多少个钉子。(假设人和钉子一样高)分析:首先,坐标除了(1,0)和(0,1)这两个钉子可以看到外,其他的任意(x,y)上的钉子能被看到,当且仅当x,y!=0&&gcd(x,y)=1;也就是x,y互质。这道题给的数据范围,...原创 2018-07-31 09:27:18 · 178 阅读 · 0 评论