
数论
小狐狸jun
菜鸟飞呀飞~
展开
-
C++大数模板 hdu1134 Catalan数
Catalan数 中文:卡特兰数 原理: 令h(1)=1,h(0)=1,catalan数满足递归式: h(n)= h(1)*h(n-1) + h(2)*h(n-2) + ... + h(n-1)h(1) (其中n>=2) 另类递归式: h(n)=((4*n-2)/(n+1))*h(n-1); 该递推关系的解为: h(n+1)=C(2n,n)/(n+1原创 2013-03-16 16:14:29 · 1513 阅读 · 0 评论 -
hdu1420降幂法
数论,降幂,感觉数论这种只能多接触了,自己推简直要把脑子烧冒烟啊。。。高中毕业以后根本不想弄数学了。。。数论计算几何弱菜伤不起。。。。貌似这题用hash也能过呢。代码:#include#includeusing namespace std;int main(){ int a,b,c,T; __int64 s,l; cin>>T;原创 2013-04-15 21:50:03 · 1092 阅读 · 0 评论 -
素数
比赛中常用的素数,这里总结一下各方面 ,先贴一个搞笑的打印素数貌似是线性级别的高效。。/*遇到素数需要打表时,先估算素数的个数:num = n / lnx;num为大概数字,越大误差越小(只是估计,用于估算素数表数组大小)这个打表法效率貌似很高,网上说几乎达到了线性时间(不知道是真是假=。=)*/#include#include#include#incl原创 2013-05-15 17:49:02 · 541 阅读 · 0 评论 -
poj 3613 floyd + 快速幂
题意:本题的大意就是问从S 到 T 经过边得个数恰为k的最短路是多少。 思路:对于邻接矩阵每一次floyd求的是每个点间的最短距离,则n次floyd就是每个点间n条路的最短距离(可以重复边);但是由于k次floyd时间复杂度会超,则运用了快速幂的方法。 代码:#include #include #include #include #include #de原创 2013-07-28 17:55:20 · 546 阅读 · 0 评论 -
hdu 2503 1713 1108 最小公倍数&最大公约数
gcd模板:__int64 gcd(__int64 a,__int64 b){ retur b==0?a:gcd(b,a%b);} 1108:#include#includeusing namespace std;__int64 gcd(__int64 a,__int64 b){ return b==0?a:gcd(b,a%b);}原创 2013-08-08 10:11:22 · 845 阅读 · 0 评论 -
快速幂
快速幂运算:int pow(int a,int n){ int rs=1; while(n) { if(n&1) rs=rs*a; a=a*a; n=n>>1; } return rs;}快速幂取余原创 2014-04-20 17:30:59 · 526 阅读 · 0 评论