![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论
lyc1635566ty
这个作者很懒,什么都没留下…
展开
-
数论-hdu-1576-A/B-逆元-扩展欧几里得
题意:要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。这是我第一次写逆元首先先讲一下什么是逆元a*x≡1 mod m 其中x就是a关于模数m的逆元此题因为A比较大,我们不能求出A/B但是我们可以求出B的逆元然后用A去乘B的逆元即可。转换如下bx≡1(mod m)bx = 1 +m原创 2016-01-30 14:50:43 · 662 阅读 · 0 评论 -
卡特兰数公式推导
卡特兰数最常见的描述就是2n个球进站出站有多少种顺序推导:折线法,问题转化为从(0,0)到(2n,0)(0,0)到(2n,0) 每次可以向右上或者右下走一波,问在不越过x=0x=0 这条线的情况下,有多少种走法。所以可以根据总数减去非法数总数很明显是cn2nc^{n}_{2n}非法数可以这样算。如果这个过程非法,这条线一定会碰到x=−1x=-1 这样我们可以取折线第一次喷到直线x=−1x=-1的点。原创 2017-06-26 21:58:36 · 10470 阅读 · 0 评论 -
约瑟夫环笔记+加速优化板子(HDU3089)
今天看到一题和约瑟夫环相关的问题,就把约瑟夫环的板子整了一下。问题描述:n个人围成圈做,编号从0开始到n-1,从第0个人开始报数(从1开始),每次报到m的人出局,然后从后一个人开始继续往后报数。问最后获胜的人是谁。思路:如果下标从0开始,则第一轮m-1被删除。剩下的数就又生成了一个大小为n-1的约瑟夫环。其中对应关系(旧–新)k—-0 k+1—-1 k+2—-2 …… n-1—-n-k-1原创 2017-06-25 20:07:14 · 706 阅读 · 1 评论 -
HDU-5528-Count a * b-2015长春B题(数学推导)
题目链接题意:给定一个n,求g(n)g(n)g(n)=f(x1)+f(x2)...+f(xm)g(n)=f(x_1)+f(x_2)...+f(x_m),其中xix_i 是nn的约数,f(n)是取(a,b),a<n,b<nf(n)是取(a,b),a<n,b<n,n不能整除a∗ba*b 的对数。思路:进行公式推导把。f(x)=∑x−1a=0∑x−1b=0[x∤a∗b]=x2−∑x−1a=0∑x−1b=0原创 2016-10-10 20:39:27 · 569 阅读 · 0 评论 -
HDU-5793-A Boring Question-打表找规律加模逆元
题意:根据题目所给公式打表找规律,容易发现f(n,m)=m*f(n-1)+1f(1,m)=m+1容易得到f(n,m)=(m^(n+1)-1)/(m+1)套一个模逆元板子就好了#include#define mod 1000000007using namespace std;long long extend_gcd(long long a,long long b,lon原创 2016-08-05 15:22:17 · 276 阅读 · 0 评论 -
HDU-5833-高斯消元
题意:n个由2000以内素数乘积的数,问任意选至少一个数,乘积是完全平方数的个数是多少。分析:每个数都可以由质数唯一分解,然后设取a[i] x[i]个然后就可以列一个方程,因为是完全平方数,所以只要个数是0 (mod2)就好,xi前的系数也mod2最后解出自由变元数p 答案就是2^p#include#define mod 1000000007using namespace std;原创 2016-08-15 23:31:39 · 255 阅读 · 0 评论 -
HDU-1573-X问题-中国剩余定律的一般形式
中国剩余定律的一般形式,就是模数的不全互质#includeusing namespace std;int M;int a[20],b[20];void exgcd(int a,int b,int &d,int &x,int &y) { if(!b) { d=a;x=1;y=0; } else { exgcd(b,a%b,d,y,x);原创 2016-07-31 00:16:02 · 261 阅读 · 0 评论 -
HDU-5768-Lucky7-中国剩余定律+容斥
题意:找出[x,y]中,能被7整除,且除p[i]不等于a[i]的数的个数思路:用状态压缩,容斥枚举参于中国剩余定律的p然后用中国剩余定律求出MIN,然后当前的个数为如果X mod M>=MIN ,ans=X/M+1否则ans=X/M (M是参与中国剩余定律的所有PI值)其中要注意,中国剩余定律中,可能会爆long long 所以要写一个快速乘法。#includeusing name原创 2016-07-30 15:32:22 · 319 阅读 · 0 评论 -
HDU 5136 (DP)
题目链接:这里题意:求深度为n的无根树有多少种构型。思路:分为两种情况,n为奇数或者偶数首先令dp[i]dp[i]为深度为k的子树的个数dp[i]=∑k−2j=0dp[i]+(dp[k−1]∗dp[k−1]+dp[k−1])/2dp[i]=\sum^{k-2}_{j=0}dp[i]+(dp[k-1]*dp[k-1]+dp[k-1])/2ps:(dp[k−1]∗dp[k−1]+dp[k−1])/2=c原创 2016-06-19 15:59:25 · 339 阅读 · 0 评论 -
数论-沈阳站-hdu-5514-容斥
题目意思是:有n只青蛙,m个石头0到m-1,每只青蛙初始在0号石头上面,每只青蛙能跳a[i]步,问所有被至少一只青蛙跳到的石头的下表总和。解题思路:首先对于每只青蛙他可以跳到的石头应该是gcd(a[i],m)的倍数的石头,但是如果分开来求肯定会有重复,所以我们采用容斥原理。所以我们先找出所有m的约数,然后再将每只青蛙能跳到的约数标记为1.用vis数组,因为有重复,所以我们用一个num数组来记录原创 2016-03-09 21:03:05 · 370 阅读 · 0 评论 -
数论-沈阳站-hdu-5512-Pagodas-水题
沈阳站的一道水题,题目意思大概就是总共n座塔,给出a和b两个塔,a题目其实可以这样想,因为每次都是从原有的塔里面抽取塔,所有能形成的塔的坐标,肯定可以表示为 mi+nj表示出来,其实很简单,这就是一个基本的扩展欧几里得模型,因为题目要求塔的个数,所以只要判断一下每个点是不是就行,所以循环判断每个点。每个点能被表示的充要条件是x可以被gcd(i,j)整除。#includeusing na原创 2016-03-09 19:36:06 · 343 阅读 · 0 评论 -
逆元模板
long long extend_gcd(long long a,long long b,long long &x,long long &y){ if(a==0&&b==0) return -1; if(b==0){x=1;y=0;return a;} long long d=extend_gcd(b,a%b,y,x); y-=a/b*x; return原创 2016-06-19 15:08:08 · 357 阅读 · 0 评论