数论
文章平均质量分 61
pizzaaaaa
这个作者很懒,什么都没留下…
展开
-
FZU 2108 MOD problem
该说是字符串题目呢还是数论题目呢。这题因为有字符串嵌套,所以最好还是拿递归来写。在构思递归的时候考虑到了要传什么参数的问题,每个递归函数传两个参数,对应的字符串长度,以及这一段的值。一开始估计错了数据范围,计算值的时候直接无脑乘积的,然后就TLE了。。。后来换了快速幂来实现,才AC。#include "cstdio"#include "cstring"#define LL long l原创 2014-02-22 19:09:59 · 537 阅读 · 0 评论 -
HDU 4335 What is N?
#include "iostream"#include "cstdio"#include "cmath"#include "algorithm"#include "map"#define LL unsigned __int64using namespace std;//返回ab mod nLL mul_mod(LL a,LL b,LL c){ LL ret=0,tmp=原创 2014-05-26 17:36:24 · 387 阅读 · 0 评论 -
Acdream 1084 寒假安排
#include #include #include #include using namespace std; #define LL long long LL prime[100];LL tpow[100]; int main(){ int T; scanf("%d",&T); while(T--) { LL n,m,k;原创 2014-06-04 21:22:09 · 500 阅读 · 0 评论 -
BITACM 1056 A^B mod C v3.0
最BT的一个版本吧。。。A,C的范围比较小,但最好还是考虑一下乘法溢出的问题。B有100w位,那肯定是不能硬算的。注意到取模有这样的一个公式: A^B = A^(B mod phi(C)+ phi(C)) mod C。那么这题就可做了。对B进行预处理然后快速幂即可。#include "cstdio"#include "cstring"#include "cmath"#原创 2014-03-06 21:46:49 · 609 阅读 · 0 评论 -
BITACM 1050 Diophantus of Alexandria
题目大意:给定你一个n,问你有多少对x,y满足1/x+1/y=1/n。首先,x,y>n。我们设x=n+k(k>0)。那么1/y=1/n-1/(n+k)=k/(n^2+k*n)注意到y一定是整数,所以可以考虑把k除下来。那么(n^2+k*n)/k一定是一个整数。那么k|n^2。k的个数一定是奇数个,考虑到x,y的大小问题。最后的答案应该是k的个数加1再除以2。那么n^原创 2014-03-06 21:29:48 · 529 阅读 · 0 评论 -
BITACM 1053 Han Xin Count Soldiers
很经典的一道多个同余式求解的题目。中国剩余定理只能解决每个mod的数两两互素的情况,但是我们通过方程合并可以很简单地处理不互素地情况。比如有两个同余方程: x = a1modb1 x = a2modb2那么我们可以把他们改写成这样的形式:x=a1+b1y1 x=a2+b2y2合并为一个方程:a1+b1y1 = a2+b2y2化简:b1y1 = a2-a1 +b2y2那么原创 2014-03-06 21:41:42 · 595 阅读 · 0 评论 -
BITACM 1045 A^B mod C v2.0
这类高精度问题需要注意数据的范围。这题A,B,C都达到了long long的范围,那么你做乘法就会有一个溢出的问题。所以你需要一个特殊的mul_mod函数来处理乘法。。。这个函数援引自aekdycoin的博客。#include "cstdio"#define LL long long/*LL mul_mod(LL a,LL b,LL n){ if(b==1) retur原创 2014-03-04 20:53:08 · 697 阅读 · 0 评论 -
BITACM 1046 Leftmost Digit
这题还是自己想出来的,也是受白书上一题的启发(大概是求和大组合数有关的问题)。题目要求n!最左边的那个数。n!的增长速度是非常快的,并且这题的n也比较大,O(n)的做法应该是会TLE的。考虑对n!取对数,当n比较小的时候(我取的大概是1w),可以直接求对数然后取小数位,再查对数表就可以知道最左边那一位了。当n比较大的时候,我们就要利用一个叫做斯特灵公式的东西。然后再求对数。#i原创 2014-03-04 21:00:08 · 492 阅读 · 0 评论 -
BITACM 1044 A^B mod C
嗯,就是一道快速幂取模。注意到c是比较小的,可以考虑每次预处理a对c取模。#include "cstdio"#define LL long longLL pow_mod(LL a,LL p,LL n){ if(p==0) return 1%n; LL ans=pow_mod(a,p/2,n); ans=ans*ans%n; if(p%2==1) an原创 2014-03-04 20:50:17 · 562 阅读 · 0 评论 -
432 C. Prime Swaps
题意:给定一个n的排列(n解法:每次把i和在i位置上的数尝试交换.由哥德巴赫猜想,一个数最多被分为3个质数之和.按照这个进行构造.原创 2014-11-03 22:17:34 · 622 阅读 · 0 评论