初等数论
muczzcy
这个作者很懒,什么都没留下…
展开
-
POJ 1019 Number Sequence
大致题意: 有一串数字串,其规律为 1 12 123 1234 12345 123456 1234567 12345678 123456789 12345678910 1234567891011 123456789101112······k 输入位置n,计算这一串数字第n位是什么数字,注意是数字,不是数!(之前囧在这)例如12345678910的第10位是1,而不是10,第11位是0,也不是原创 2013-02-16 17:56:51 · 408 阅读 · 0 评论 -
HDU 1713 相遇周期
Sol:求分数的GCD小学生都会。。。注意通分约分就好。 #include #include #include using namespace std; inline long long gcd(long long a,long long b) { return b==0?a:gcd(b,a%b); } inline long long lcm(long long a,long l原创 2014-02-06 15:39:05 · 836 阅读 · 0 评论 -
HDU 2136 Largest prime factor
Sol:筛法求素数打表时预处理下即可。 #include #include using namespace std; const int maxisp = 1000000 + 10; const int maxp = 1000000 + 10; int num,n; int prime[maxp]; int isprime[maxisp]原创 2014-02-06 17:08:14 · 671 阅读 · 0 评论 -
HDU 1722 Cake
Sol:证明的好题。。。画个图就能推出来重复的次数就是GCD了。 #include #include #include using namespace std; inline int gcd(int a,int b) { return b==0?a:gcd(b,a%b); } int main() { int n,m; while(~scanf("%d%d",&n,&m))原创 2014-02-06 15:56:12 · 735 阅读 · 0 评论 -
HDU 1286 找新朋友
Sol:欧拉函数的应用。。。。 #include #include using namespace std; const int maxisp = 1000 + 10; const int maxp = 500 + 10; int num,n; int prime[maxp]; int isprime[maxisp]; inline v原创 2014-02-06 17:14:12 · 723 阅读 · 0 评论 -
POJ 1845 Sumdiv
Sol:求A^B所有约数和% MOD的结果。 根据唯一分解定理将A进行因式分解就ok. 等比数列通过奇偶性的判断处理下就行了。 A^B=p1^(a1*B)*p2^(a2*B)*...*pn^(an*B); #include #include #include #include #include using namespace std; const int MOD =原创 2014-01-01 15:04:06 · 664 阅读 · 0 评论 -
SGU 107 987654321问题
Sol:打表找规律,发现后9位满足的只有8个数。。。 #include using namespace std; int main() { int n; while(~scanf("%d",&n)) { if(n<9) printf("0\n"); else if(n==9) printf("8\n"); else { n-=10; printf("72"原创 2013-12-16 11:02:42 · 1352 阅读 · 0 评论 -
SGU 105 Div 3 找规律
题意:就是找那个数列能整除3的个数。 Sol:找规律即可。 Code: #include using namespace std; int main() { int n; while(~scanf("%d",&n)) { int ans = n/3*2; if(n%3) ans+=n%3-1; printf("%d\n",ans); } return 0; }原创 2013-11-08 12:21:37 · 776 阅读 · 0 评论 -
SGU 102 Coprimes ---- 欧拉函数、素数的应用&&GCD水题
题意:为求不大于N并与N互质的正整数的个数。我们把这样的两个正整数称为是互质的:当且仅当它们的最大公约数为1。 欧拉函数: #include #include using namespace std; const int maxisp = 1000 + 10; const int maxp = 500 + 10; int num,n; int prime[maxp]; int i原创 2013-11-08 11:43:51 · 983 阅读 · 0 评论 -
SGU 106 The Equation 扩展欧几里得应用
Sol:线性不定方程+不等式求解 证明的去搜下别人的证明就好了。。。数学题。 #include #include #include using namespace std; 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原创 2013-12-15 23:59:11 · 835 阅读 · 0 评论 -
POJ 2769 Reduced ID Numbers (同余定理)
/*应用同余定理模拟就好,让m从小到大递增注意验证是否满足条件即可。因为求的是同余所以bool数组可以比数据范围小10^(-1)倍。。。否则会超时。。。*/ Source Code Problem: 2769 User: imutzcy Memory: 280K Time: 454MS Language: C++ Result:原创 2013-02-22 00:56:03 · 422 阅读 · 0 评论 -
POJ 3252 Round Numbers
大致题意: 输入两个十进制正整数a和b,求闭区间 [a ,b] 内有多少个Round number 所谓的Round Number就是把一个十进制数转换为一个无符号二进制数,若该二进制数中0的个数大于等于1的个数,则它就是一个Round Number 注意,转换所得的二进制数,最高位必然是1,最高位的前面不允许有0 规定输入范围: 1 用组合做 很猥琐的题,我首先说说猥琐的地方,再原创 2013-02-17 00:35:24 · 364 阅读 · 0 评论 -
母函数模版小结
下面是模板 #include using namespace std; const int _max=10001; int c1[_max],c2[_max]; int main() { int nNum; int i,j,k; while(cin>>nNum) { for(i=0;i { c1[i]=1; //初始化系数都为1 c2[i]=0; } //总共原创 2013-02-16 18:27:28 · 332 阅读 · 0 评论 -
HRBUST 1328 相等的最小公倍数
SOl:将原题改为枚举N的每一对因子,计算其是否互素即可。 #include #include #include using namespace std; inline int gcd(int a,int b) { return b==0?a:gcd(b,a%b); } int main() { int n,T,i,j; scanf("%d",&T); while(T原创 2014-05-20 20:54:23 · 711 阅读 · 0 评论