摘要: GCD模板__int64 gcd(__int64 a,__int64 b){ return b==0? a:gcd(b,a%b);}欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理: gcd函数就是用来求(a,b)的最大公约数的。 gcd函数的基... 阅读全文
posted @ 2012-08-02 19:56 _雨 阅读(326) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2647定义一个数组 来标记 保证每次循环找到的是同一层次的 它们加的数是相同的 用f来表示找到多少个入度为0的点 2 #include 3 struct node 4 { 5 int v,w,next; 6 }men[20001]; 7 int first[10001],de[10001],t,kk[10001]; 8 void init() 9 {10 t = 0;11 memset(first,-1,sizeof(first));12 }13 void add(int u,int... 阅读全文
posted @ 2012-08-02 19:29 _雨 阅读(140) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4339对线段树还是不熟悉吧 写起来挺费劲的 大体知道怎么写 还是老出错 一直纠结区间被砍开了 怎么找剩余的部分 这部分还必须是跟第一部分连着的后来想到找到第一个区间之后 以区间的r+1作为新的查找点继续递归查找犯了很二的错误 建树建小了 该是100W 折腾了差不多4小时吧View Code 1 #include<stdio.h> 2 #include<string.h> 3 struct node 4 { 5 int l,r,data; 6 }s[3000000]; 7 #define 阅读全文
posted @ 2012-08-02 18:41 _雨 阅读(235) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4318这题做的好二 不会邻接表ME了一晚上 学会了邻接表 TLE了一晚上 看了最短路径WA了一上午 原来样例中用的100 我就直接写的100.。。。14次换来一次AC单元最短路径http://www.cnblogs.com/zen_chou/archive/2009/05/15/1457962.htmlView Code 1 #include<stdio.h> 2 #include<string.h> 3 #include<iostream> 4 #include<q 阅读全文
posted @ 2012-08-02 10:10 _雨 阅读(188) 评论(0) 推荐(0) 编辑