ACM数论
穿袜子的流氓兔
这个作者很懒,什么都没留下…
展开
-
大数判断素数(Miller-Rabin测试)
#include#include#includetypedef unsigned long long LL;LL modular_multi(LL x,LL y,LL mo){ LL t; x%=mo; for(t=0;y;x=(x>=1) if (y&1) t=(t+x)%mo; retu转载 2014-03-02 14:20:42 · 928 阅读 · 0 评论 -
链接矩阵快速幂(zoj3497)
这题每个点可以到都有4个链接点。关键是最后那个点到其他节点的传送是假的,没用的。因为题意说明一旦到了最后那个节点就会走出谜之森林,所以该点到其他点的链接矩阵值都。。.附代码:#include#include#include#includeusing namespace std;int n;struct matrix{ int f[50][50];};matrix原创 2014-03-05 16:02:05 · 890 阅读 · 0 评论 -
C++ 大数类 大数模板
分别使用C++中的运算符重载的方法来实现大数之间的数学运算,包括加法、减法、乘法、除法、n次方、取模、大小比较、赋值以及输入流、输出流的重载。。 并且使用这个大数模板,顺利AC了HDOJ上的1134这个题目的Catalan数计数问题。。http://acm.hdu.edu.cn/showproblem.php?pid=1134大数模板的代码如下:#include #inc原创 2014-03-26 19:19:03 · 892 阅读 · 1 评论 -
大数模板
//高精度模板,注意本模板并没有考虑中间会出现负数的情况 #include #include #include #include #include #include #include #include #include #include #include #原创 2014-03-16 15:58:42 · 679 阅读 · 0 评论 -
catalan数。大数与小数的相乘和相除(hdu1134)
题目意思就是求2N个数字,连N 条不相交的线的方案数.此题考查的是卡特兰数,由于卡特兰数很大,所以考虑大数处理。卡特兰数的前几项为:h(0)=1;h(1)=1;h(2)=2;h(3)=5……卡特兰数的递推公式为:h(n)=h(n-1)*(4*n-2)/(n+1);非递推公式为C(2n,n)/(n+1);此题用递推公式求解,并用到大数的乘法和大数的乘法处理,本题对卡特原创 2014-03-16 15:48:43 · 1042 阅读 · 0 评论 -
欧拉定理——小于N的互质数的个数
#include int main(){ int n,k; int sum; while(scanf("%d",&n)!=EOF) { sum=n; for(k=2;n!=0&&n!=1;) { if(n%k==0) { sum=sum/k*(k原创 2014-03-28 17:42:47 · 1295 阅读 · 0 评论 -
java 大数(hdu4002)
/*f(1)=2f(2)=2*3f(3)=2*3*5f(4)=2*3*5*7求小于N 的最大f(x)的值利用java写大数*/public class Main{ static String s[] = { "2", "3", "5", "7", "11", "13", "17", "19", "23", "29", "31", "37"原创 2014-03-30 19:26:35 · 846 阅读 · 0 评论 -
ACM常用模板 字典序全排列
//字典序全排列与序号的转换int perm2num(int n,int *p){int i,j,ret=0,k=1;for (i=n-2;i>=0;k*=n-(i--))for (j=i+1;jif (p[j]ret+=k;return ret;}void num2perm(int n,int *p,int t){int i,j;for (i=原创 2015-09-07 09:57:44 · 1191 阅读 · 0 评论