11 2015 档案
摘要:本原毕达哥拉斯三元组是由三个正整数x,y,z组成,且gcd(x,y,z)=1,x*x+y*y=z*z对于所有的本原毕达哥拉斯三元组(a,b,c) (a*a+b*b=c*c,a与b必定奇偶互异,且c为奇数。这里我们设b为偶数)则:和a=stb=(s*s-t*t)/2c=(s*s+t*t)/2其中s>t...
阅读全文
摘要:刚看到这个题目,有点被吓到,毕竟自己这么弱。分析了很久,然后发现m,k都可以唯一的用d进制表示。也就是用一个ai,和很多个bi唯一构成。这点就是解题的关键了。 之后可以发现每次调用函数f(x),相当于a(ai),b(bi)了一下。这样根据置换的一定知识,一定会出现循环,而把循环的大小看成取模,把从m...
阅读全文
摘要:Hello KikiTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2734Accepted Submission(s): 1010Problem ...
阅读全文
摘要:套模板,因为要是正整数,所以处理一下x=0的情况。X问题Time Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4444Accepted Submissio...
阅读全文
摘要:void extendgcd(long long a,long long b,long long &d,long long &x,long long &y){ if(b==0){d=a;x=1;y=0;return;} extendgcd(b,a%b,d,y,x); y -= x*...
阅读全文
摘要:#include #include #include #include #include using namespace std;#define N 10100/*对于x=r0(mod m0) x=r1(mod m1) ... x=rn(mod mn)输入数组m和数组r...
阅读全文
摘要:一个exgcd解决一个线性同余问题,多个exgcd解决线性同余方程组。Strange Way to Express IntegersTime Limit: 1000MSMemory Limit: 131072KTotal Submissions: 12001Accepted: 3797Descrip...
阅读全文
摘要:感觉有些无聊的比赛。A暴力枚举下就行B简单的dp,但是wa了一发后就去先把C做了,然后发现如果输入的100个数,是如1,2,3,4,...,100,然后k=50,个数为c(100,50).果断大数。用了个c++的大数模板,感觉用的很爽。#include #include #include using...
阅读全文
摘要:好菜,不说话了,说题。A - Patrick and Shopping从一个点出发,要经过其他两个点,然后回到原地,求最小时间花费。只有四种情况,从中选一个最小的就行了。#include #include #include #include #include #include using names...
阅读全文
摘要:对于一个素数a,2^a-1叫做梅森数。 如果2^a-1为素数则叫做梅森素数。我们知道,如果a为合数,则2^a-1一定不是素数。2^a-1为素数,则a必为素数。如果a为素数,则2^a-1可为素数,也可为合数。unsigned long long multi_pow(unsigned long long...
阅读全文
摘要:普通的做法,大数除小数。复杂度o( log(n)*log(n) ),其实就是位数的平方。NUMBER BASE CONVERSIONTime Limit: 1000MSMemory Limit: 10000KTotal Submissions: 4913Accepted: 2246Descripti...
阅读全文
摘要:素数定理:随着x的增长,P(x) ≈x/ln(x) ,P(x)表示(1,x)内的素数的个数。这个定理,说明在1-x中,当x大到一定程度时,素数分布的概率为ln(x)竟然还有一道题目。素数个数的位数Problem : 117Time Limit : 1000msMemory Limit : 65536...
阅读全文
摘要:看完题目后,题目要求:设时间为t(x+mt)%L = (y+nt)%L( x-y + (m-n)*t )= k*L (k是整数,可为负)然后就是经典的xa+yb=c 求解x,y的经典题目了。/*xa+yb=c先求 xa+yb=gcd(a,b)如果c%gcd(a,b)不为0,则没有整数解求出x0,y0...
阅读全文
摘要:看了数论第一章,终于搞懂了扩展欧几里德,其实就是普通欧几里德的逆推过程。// ax+by = gcd(a,b) ->求解x,y 其中a,b不全为0,可以为负数// 复杂度:O(log2a)void extendgcd(ll a,ll b,long long &x,long long &y){ ...
阅读全文
摘要:看了ACM-ICPC系列之数论中的定义,取模运算是这样子的。给定一个正整数p,任意一个整数n,一定存在等式 :n = kp + r ;其中 k、r 是整数,且 0 ≤ r 0于是很不开心,写了个程序测试下:1 printf("(7)MOD5 =%d\n",7%5);2 printf...
阅读全文
摘要:很好用。 C++ 被玩得真溜转自:http://blog.csdn.net/zz_1215/article/details/6716132#define DIGIT 4 //四位隔开,即万进制#define DEPTH 10000 //万进制#define MAX ...
阅读全文
摘要:这题只能呵呵了。东搞西搞,折腾快一天,最后用了一个800多行的代码AC了。好好的题目你卡这种精度干啥。 还有要卡您就多卡点行不,为什么long double 又可以过。。。废了N长时间写个了不管精度的解法,结果网上看别人都是几十行代码轻松搞定,真是要吐血。不过 还是学了一些东西的。第一个 :atan...
阅读全文
摘要:最近看了下AC自动机,觉得没有什么卵用。不过还是记录下。 #define MAXTREENODE 400400 struct ACtree { int next[MAXTREENODE][26],times[MAXTREENODE],fail[MAXTREENODE]; int head,treei
阅读全文
摘要:被C坑的不行不行的。。。其他题目都还可以。A - Tricky Sum求1,2,3,...,n的加和,其中2^x(x>=0)为负。因为2^x的个数很少,所以以每个2^x为分界点进行判断.初始化x=0;如果n>2^x,求出2^(x-1)到2^(x)之间的加和,用等差数列求和公式即可,然后x++,如果n...
阅读全文
摘要:上图论课的时候无意之间看到了这个,然后花了几天的时间学习了下,接下来做一个总结。一般斯坦纳树问题是指(来自百度百科):斯坦纳树问题是组合优化问题,与最小生成树相似,是最短网络的一种。最小生成树是在给定的点集和边中寻求最短网络使所有点连通。而最小斯坦纳树允许在给定点外增加额外的点,使生成的最短网络开销...
阅读全文
摘要:#define N 55//所有点的个数 #define K 10//SteinerTree 最大顶点数,必须精确 #define INF 10000000 //SteinerTree 邻接矩阵模板。(稠密图)时间复杂度 O(N*2^K*(2^K+N)) int dp[(1<<K)+1][N]; int STV[N]; int SteinerTreeDP(int mat[N][N],int ...
阅读全文