数论
文章平均质量分 68
zjck1995
这个作者很懒,什么都没留下…
展开
-
hdu 4952Number Transformation
#pragma warning(disable:4996)#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define INF 0x3f3f3f3f原创 2014-08-14 23:25:10 · 367 阅读 · 0 评论 -
hdu1573 中国剩余问题定理 模数非互质
#includeusing namespace std;#define rd(x) scanf("%d",&x)#define rdd(x,y) scanf("%d%d",&x,&y)#define rddd(x,y,z) scanf("%d%d%d",&x,&y,&z)#define rds(s) scanf("%s",s)#define rep(i,n) for(int i=0;i原创 2015-09-19 10:16:52 · 408 阅读 · 0 评论 -
hdu5446 lucas+中国剩余定理
lucas定理 lucas(n,m,p)=C(n%p,m%p,p)*lucas(n/p,m/p,p),p是质数证明: n=ak*p^k+a(k-1)*p^(k-1)+........a0*p^0m=bk*p^k+b(k-1)*p^(k-1)+........b0*p^0(1+x)^p=1+x^p (mod p) p是质数 ,可以得到 (1+x)^(p^k)=1+x^(p^k)原创 2015-09-17 16:29:42 · 448 阅读 · 0 评论 -
hdu5363 排列组合+快速幂
公式为2^(n-1)-1,然后用快速幂即可#pragma comment(linker, "/STACK:102400000,102400000")#include #include#include#include#include#include#include#include#define lson l,m,rt<<1#define rson m+1,r,rt<<1 |原创 2015-08-06 20:17:45 · 458 阅读 · 0 评论 -
hdu 5402 一道神奇的模拟题
#include#include#include#include#include#include#include#include#includeusing namespace std;const int N=105;const int MOD=1e9+7;int n,m,k;int a[N][N];int x,y;char ch[]="DRUL";int dx[]=原创 2015-08-19 19:36:51 · 320 阅读 · 0 评论 -
hdu5358 数学题
s(i,j)在[2^(k-1),2^k)之间时 log2(s(i,j))下取整+1的值是k,枚举k从1到34 ,求出对应的s(i,j)在[2^(k-1),2^k)之间时i+j的和,求这个的话,可以枚举起始点从1到n,用两个指针不断后移#pragma comment(linker, "/STACK:102400000,102400000")#include #include#include原创 2015-08-06 19:53:27 · 1676 阅读 · 0 评论 -
hdu4497 lcm and gcd
找 x,y,z的个数 x,y,z满足 gcd(x,y,z)=g,lcm(x,y,z)=l将l/g分解质因数,对于每种质因数,3个数不能全都有,否则g要增大了,同时必须有一个数分配到所有该种质因数,否则l要减小了#pragma comment(linker, "/STACK:102400000,102400000")#include #include#include#include原创 2015-08-05 17:10:19 · 328 阅读 · 0 评论 -
hdu3037 lucas 定理 组合数取模
#include#include#include#include#include#include#include#include#includeusing namespace std;#define rep0(i,n) for(int i=0;i<n;i++)#define rep(i,j,k) for(int i=j;i<k;i++)const int N=1e5+10;原创 2015-09-02 09:56:55 · 479 阅读 · 0 评论 -
hdu5312 Sequence 三角形数的应用
给一个数,问最少由多少 个 3*n(n-1)+1的数字构成 n*(n-1)/2是三角形数,任意一个数可以由不超过三个三角形数构成,假设有k个数 6*(A1+。。。Ak)+k=n(n-k)%6==0 最小的k就是答案,需要特判下k=1 或2 的情况#include #include#include#include#include#include#include#in原创 2015-07-29 14:32:48 · 314 阅读 · 0 评论 -
听说你会取模 (余数巧妙转化为减法 进行线性遍历)
题目描述ECNU-SEI中有一位非常喜欢打游戏的高手,他的名字叫小五。他深居简出,手机号码簿上除了妈妈,谁也没有。所以他不会接除了妈妈以外任何人的电话,因为对他来说都是陌生人。他玩过上千种游戏,并且非常善于制作游戏MOD。他玩游戏非常专心,除非妈妈打电话说要来学校看望他,然后他会立即吓得躺在床上直哆嗦。渐渐地,他声名远播,越来越多人知道他非常会做MOD,越来越多人知道他会MOD,越原创 2014-12-24 22:24:52 · 987 阅读 · 0 评论 -
计算1到n中的1的个数
b[i]表示n数字从小到大第i位是什么c[i]表示1到b[i]b[i-1]....1中的1的个数,a[i]表示1到10^i-1中有几个1sum表示从低位向高位循环过程中累计的值,最后是n接下来递推 if(b[i]==0) c[i]=c[i-1] 是0的话和前一位的值是一样的else if (b[i]==1) c[i]=a[i-1]+sum+1+c[i-1] 是1原创 2014-12-16 13:13:01 · 360 阅读 · 0 评论 -
Round #5 1001 Poor Hanamichi(原来这么简单啊)
#pragma warning(disable:4996)#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;const int MAX_N = 680;原创 2014-08-17 20:44:58 · 459 阅读 · 0 评论 -
hdu5451 矩阵快速幂+暴力打表循环节
#includeusing namespace std;#define rd(x) scanf("%d",&x)#define rdd(x,y) scanf("%d%d",&x,&y)#define rddd(x,y,z) scanf("%d%d%d",&x,&y,&z)#define rds(s) scanf("%s",s)#define rep(i,n) for(int i=0;i原创 2015-09-19 22:42:54 · 6454 阅读 · 0 评论