随笔分类 - 有用的模板
摘要:Drainage Ditches Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 14721 Accepted Submission(s): 69
阅读全文
摘要:快速幂的原理:a^b=(a*a)^b/2(当b为偶数) a^b=a*(a*a)^((b-1)/2)(当b为奇数) a^b%mod=((a*a)%mod)^b/2%mod; 基础的快速幂模板代码: (递归写的) 矩阵快速模模板代码:
阅读全文
摘要:CLRS 15-1 双调欧几里得旅行商问题 欧几里得旅行商问题是对平面上给定的n个点确定一条连接各点的最短闭合旅程的问题。如图(a)给出了一个7个点问题的解。这个问题的一般形式是NP完全的,故其解需要多于多项式的时间。J. L. Bentley建议通过只考虑双调旅程来简化问题,这种旅程即为从最左点开
阅读全文
摘要:最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 49478 Accepted Submission(s): 21783 Problem D
阅读全文
摘要:A strange lift Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 18723 Accepted Submission(s): 6926
阅读全文
摘要:令h(0)=1,h(1)=1,catalan数满足递推式: h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (n>=2) 例如:h(2)=h(0)*h(1)+h(1)*h(0)=1*1+1*1=2 h(3)=h(0)*h(2)+h(1)*h(1)+h
阅读全文
摘要:const int mod=1e9+7; typedef long long ll; //返回d=gcd(a,b);和对应于等式ax+by=d中的x,y ll extend_gcd(ll a,ll b,ll &x,ll &y) { if(a==0&&b==0) return -1;//无最大公约数 if(b==0){x=1;y=0;return a;} ll d=exte...
阅读全文
摘要:Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 67471 Accepted Submission(s): 28374
阅读全文
摘要:转自此处 http://blog.sina.com.cn/s/blog_9f7ea4390101101u.html 这是一个求一个排序的下一个排列的函数,可以遍历全排列,要包含头文件<algorithm>下面是以前的笔记 与之完全相反的函数还有prev_permutation (1) int 类型的
阅读全文
摘要://数组a[]中有n个元素,已经按升序排序,待查找的元素Xtemplate{ int BinarySearch(Type a[],const Type& x,int n) { int left = 0; ...
阅读全文
摘要:康托展开的公式是 X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0! 其中,ai为当前未出现的元素中是排在第几个(从0开始)。 这个公式可能看着让人头大,最好举个例子来说明一下。例如,有一个数组 s = ["A", "B", "C", "...
阅读全文
摘要:#include#include#includeusing namespace std;int next[100];void set_next(char str[]){ int len,j,i; len=strlen(str); next[0]=-1; j=-1; i=0; ...
阅读全文
摘要:#include #include using namespace std;int add(int a,int b){ int c; while(b!=0) { c=a%b; a=b; b=c; } return a;}int ...
阅读全文
摘要:一个模板,二十万以内的数的所有公约数之和 1 //最大公约数之和 2 3 #include 4 #include 5 #include 6 using namespace std; 7 int a[200005]; 8 void init() 9 {10 memset(a,0,siz...
阅读全文
摘要:素数是遇到的问题经常出现的内容,判断一个数是否是素数,基本上所有人都会,但是如果是很大范围内求素数,普通的方法求容易超时,于是就可以用到可以模板,素数打表。 1 //求一千万以内的素数 2 #include 3 #include 4 #include 5 using namespace std...
阅读全文
摘要:两条直线是否相交 1 //叉积 2 double mult(Point a, Point b, Point c) 3 { 4 return (a.x-c.x)*(b.y-c.y)-(b.x-c.x)*(a.y-c.y); 5 } 6 7 //aa, bb为一条线段两端点 cc, dd为另一...
阅读全文
摘要:DescriptionBob讨厌复杂的数学运算.看到练习册上的算术题,Bob很是头痛.为了完成作业,Bob想要你帮忙写一个文本版的四则运算计算器.这个计算器的功能需求十分简单,只要可以处理加减乘除和括号就可以了.你能够帮助Bob吗?Input每个样例一行,输入一个长度小于1500的包含有'(',')...
阅读全文

浙公网安备 33010602011771号