acm_数论
xrivendell7
永不放弃,永不停息
展开
-
poj 2142 The Balance 扩展欧几里得
POJ2142 题目的大意是通过放不同的砝码使得天枰平衡 很容易得到实际上问题就是解ax=d+byax=d+by与ax+d=byax+d=by这两个方程的满足条件的最小的正整数解 但实际上我们可以通过解这样一个不定方程ax+by=dax+by=d来得到结果 首先,x,yx,y的正负是无关紧要的(如果其中一个是负数,我们直接取绝对值就可以),无非就是砝码从一段移到另一端。 其次,通过扩展原创 2016-10-10 23:18:03 · 362 阅读 · 0 评论 -
LightOJ1007 Mathematically Hard
LightOJ1007 题目的意思很容易理解,求一个区间[a,b]内的欧拉函数平方之和 但是题目的数据限很大 a,b都是1e12级。按照一般思路写好程序后,实验以下从2到10000发现long long也会超范围,所以用unsigned long long。 此外还需要预处理前缀和,不然就会超时。 预处理前缀和时不能够再开数组,不然就会爆内存,WA点多多. AC代码:#include <b原创 2016-10-01 09:03:14 · 339 阅读 · 0 评论 -
LightOJ1035 Intelligent Factorial Factorization(算数基本定理)
LightOJ1035 求n!的各个的算数基本定理分解 n的数据很小只有100,所以调用,并把每个位数e[i]加起来就可以了 输出写的比较丑陋…AC代码:#include <bits/stdc++.h>using namespace std;const int maxn=100+5;bool visit[maxn];int prime[maxn],e[maxn],n;void pri原创 2016-09-30 01:51:21 · 489 阅读 · 0 评论 -
Lightoj1370 Bi-shoe and Phi-shoe
Lightoj1370 寻找使得x<=phi(y)最小的y,原本以为是一道euler函数的裸题,套上euler函数的模版TLE 写几项发现,y就是比x大的最小素数,素数打表,之后线性时间打p[i]数组求解,就不会再超时。AC代码:#include <bits/stdc++.h>typedef long long ll;using namespace std;const int maxn=原创 2016-09-29 23:56:54 · 457 阅读 · 0 评论 -
HDU1576 A/B 求乘法逆元模版
HDU1576A/B求A/B(mod9973),并且已经知道gcd(B,9973) = 1,所以 A/B(mod9973)=A*B^(-1)(mod9973),重在求乘法逆元:由于(B,9973)=1,利用费马小定理最简单,逆元即为B^(mod-2) AC代码:/*************************************************************** By原创 2016-09-26 21:05:02 · 322 阅读 · 0 评论 -
HDU 2669 Romantic扩展欧几里得
HDU2669 首先题目描述和题目本身卵关系没有 就是求解不定方程的解的解,注意x的值必须大于零。 在模版e_gcd求得特解之后,需要知道该不定方程的通解: 利用它最小的正整数x AC代码:/*************************************************************** By: Xingxing* Date: 2016-09-27*原创 2016-09-26 21:47:22 · 413 阅读 · 0 评论 -
POJ 1006 Biorhythms 手算孙子定理
POJ1006 题目给的mod数组是固定,直接手算吧 AC代码:#include <iostream>#include <cstdio>using namespace std;int main(){ //freopen("input.txt","r",stdin); int p,e,i,d,cnt=0; while(~scanf("%d%d%d%d",&p,&e,&原创 2016-10-11 22:28:44 · 665 阅读 · 0 评论 -
CodeForece 724C Ray Tracing 扩展欧几里得
题目链接 题目的大意就是一束从(0,0)发出的光线经过有限次反射从一个矩形区域射出,在该矩形区域内布置有若干个传感器,试问光线第一次经过该传感器所需要的时间。 1.可以用模拟直接去做,模拟光线的反射,最后把每一个传感器的最小时间记录下来。 2.光线的反射,可以通过对称最后把有限次反射变换成直线通过。所以首先把矩阵左右,上下进行对称,我们可以知道最后光线射出的点为(lcm(m,n),lcm(m,原创 2016-10-11 22:23:08 · 452 阅读 · 0 评论 -
POJ2891 Strange Way to Express Integers 不互质中国剩余定理
POJ2891题意是求同余方程组的最小正整数解,首先肯定想到用中国剩余定理,但题目中并没有限制模数m[i]两两互质,就不能直接用中国剩余定理,需要注意两个问题: 1.同余方程式是否有解:对任意两个同余方程: {x≡b[i] (mod m[i])x≡b[j] (mod m[j])\begin{cases}x\equiv b[i] \ \ \ \ (mod \ m[i] ) \\x原创 2016-10-10 22:32:53 · 393 阅读 · 0 评论 -
FZU 1402 猪的安家 中国剩余定理
FZU1402 中国剩余定理的模版题,注意在CRT过程中及时取模,防止在 M=m[1]∗m[2]∗m[3]……M=m[1]*m[2]*m[3]……的过程中发生乘法的溢出AC代码:#include <iostream>#include <cstdio>#include <cstring>typedef __int64 int64;using namespace std;int64 b原创 2016-10-10 23:21:42 · 402 阅读 · 0 评论 -
LightOJ1341 Aladdin and the Flying Carpet
LightOJ1341 题目的大意是求一个矩阵的分解的可能情况,并且给定了矩阵的最短边b的限制条件,注意正方形的情况不考虑。 我们知道一个数的因子个数可以用算术基本定理来表示 那么它的因子数个数为: 避免重复,并且去除正方形的情况,需要m/2,之后暴力枚举去掉1到b之间的因数情况即可。题目的数据限制较宽松 AC代码:#include <bits/stdc++.h>using na原创 2016-10-01 09:12:27 · 354 阅读 · 0 评论