摘要: 题目链接裸的弗洛伊德,没想清楚判断是否是6度分离,WA了一次,还好仔细分析了代码+思考10多分钟后找到问题,2Y。。 1 #include <stdio.h> 2 #include <string.h> 3 #define N 1000000 4 int p[301][301]; 5 int main() 6 { 7 int sv,ev,i,j,k,n,m,z; 8 while(scanf("%d%d",&n,&m)!=EOF) 9 {10 for(i = 0; i <= n-1; i ++)11 for(j = 0; j &l 阅读全文
posted @ 2012-06-20 19:22 Naix_x 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 题目链接听QC说是裸弗洛伊德,我想都没想就打出来了,发现样例过不了,仔细看了看题,有一点变化。。。 1 #include <stdio.h> 2 #include <string.h> 3 #define N 1000000 4 int p[301][301]; 5 int main() 6 { 7 int sv,ev,w,i,j,k,n,m,t; 8 scanf("%d%d%d",&n,&m,&t); 9 for(i = 1;i <= n;i ++)10 for(j = 1;j <= n;j ++)11 {12 阅读全文
posted @ 2012-06-20 17:24 Naix_x 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 题目链接复习的好累啊,刷个题。。。题意简单给两个数,找中间有多少个斐波那契数,最大可能有100位。先预处理出来,大数比较,我用的方法比较搞,以前做UVA的时候想出的一种方法,先判断位数,然后位数相同时,用strcmp函数来判断,因为此函数,可以判断两个字符串的字典序大小,然后注意点找的时候小细节就OK了。。。难得的1Y,话说UVA那个高精度 我还没过啊,UVA上各种坑人啊,如果数据有前导0,此算法悲剧。。。 1 #include <stdio.h> 2 #include <string.h> 3 int p[601][201],num[601]; 4 char str[ 阅读全文
posted @ 2012-06-18 21:33 Naix_x 阅读(490) 评论(0) 推荐(0) 编辑
摘要: 题目链接枚举一下,就可以。。最近超时的次数太多都怕了。。。SB的忘了个换行PE一次。 1 #include <stdio.h> 2 #include <string.h> 3 int p[101][101],sum1[101],sum2[101],n; 4 int judge() 5 { 6 int i; 7 for(i = 1;i <= n;i ++) 8 { 9 if(sum1[i]%2 != 0)10 break;11 if(sum2[i]%2 != 0)12 break;13 }14 ... 阅读全文
posted @ 2012-06-17 21:48 Naix_x 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 题目链接以前练习赛中的一个题,当时没学图论,听学长说是弗洛伊德,最近学了,又重新看了一下,用的很不熟练啊。。。在WA了3 4次之后,没浮躁,很不容易。。。题目:给你有向图的最短路,判断是否存在,存在,可以留下的最小边数。思路:想的时间有点长,先弗洛伊德一遍,判断是图中是否存在最短路,若有则直接输出不存在,再判断图中是否存在是否有p[j][k] ==p[j][i] + p[i][k]的边,就是这里,重复计算了,WA4次,唉,开始的时候也考虑的重复计算的问题,天真的加了个break,还是不熟悉啊。。。终于发现问题后,加了个标记数组后,A了。 1 #include <stdio.h> 2 阅读全文
posted @ 2012-06-16 10:26 Naix_x 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 题目链接好久没刷DP了,很没状态啊。这个题,先是算法想错,以为是类似滑雪的那种记忆化DP,结果变出来,没有终止条件,死循环。。。后来换了算法O(n^3) 这个状态方程很容易就能看出来,主要是实现的问题。。。还真不好说,这个是怎么做的,就是一直找左右,直到没法更新为止吧。最郁闷的是傻的不知道10的9次方会爆int,写完后URAL给的错误看不太懂,以为是数组越界。。。。。最近1Y很困难啊。。。 1 #include <stdio.h> 2 #include <string.h> 3 #define N 10000000000 4 long long dp[111][511] 阅读全文
posted @ 2012-06-15 21:00 Naix_x 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 题目链接区域赛的水题。。。题意理解好了就OK了,模版题,还是调试了一会,自己对代码不太熟练啊。 1 #include <stdio.h> 2 #include <string.h> 3 #define N 1000000 4 int main() 5 { 6 int p[20][20],low[13],o[13],sea[13]; 7 int i,j,k,n,a,b,w,ev,min; 8 while(scanf("%d",&n)!=EOF) 9 {10 memset(o,0,sizeof(o));11 memset(sea,0,... 阅读全文
posted @ 2012-06-15 10:21 Naix_x 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 题目链接非常裸的最短路问题,昨天把Dijkstra的思想理解了下,发现和prim非常相似,都是用一个low数组记录到达每个点的最短距离,昨天WA了N次,发现数据中竟然有两个点的权值有的时候有好几个。。。杭电上这个题数据没有重边。今天看了一下弗洛伊德,代码真的是挺简单,思想不是很理解。。。先代码实现,然后慢慢体会他的DP思路。 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 #define N 100000 5 int p[111][111],o[101],low[101]; 阅读全文
posted @ 2012-06-15 09:07 Naix_x 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 题目链接在von学长的讲解,各种资料,算法导论神马的,都观摩了一遍,外加这个博客和这个终于理解了。。。。Prim的算法开始的时候理解错了,以为一直找最短的,再找到下个点再找最短的,结果WA了多次。。。无奈书上的模版代码实在是看不懂,经过询问学长后,终于理解找最小边的时候,要从集合中找,而不是下个点。。。终于在理解算法之后YY了个O(n^3)的代码。。。发现书上说此算法的复杂度为O(n^2),而且书上的模版和我的很不一样。。。终于,在学长的指导下,明白书上的代码了。算法实现:用low[]来存已经在树上的节点,到每个节点的最短的值,如果没有边,就初始化为正无穷,从low[]找最小边,然后改变low 阅读全文
posted @ 2012-06-14 17:38 Naix_x 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 做最小生成树的时候,用kruskal做稠密图。。怎么都是超时,等等试一下Prim看看能不能过。。期间优化下并查集的部分,看的杭电上的文档,文档上讲的很好,讲了两种方式。 1.把小树合并到大树上去。 2.通过查找时,把树给压缩了。 看文档上讲的比较好。。。 关键代码: 1 int find(int x)//通过查找压缩路径 2 { 3 int i,r,j; 4 r = x; 5 while(r != o[r])//找到根 6 { 7 r = o[r]; 8 } 9 i = x;10 while (r != i)//把这条路... 阅读全文
posted @ 2012-06-13 17:31 Naix_x 阅读(348) 评论(4) 推荐(1) 编辑
摘要: 题目链接裸最小生成树。 还好数据小,0ms。 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 #include <math.h> 5 int o[101],num; 6 double sum; 7 struct edge 8 { 9 int sv,ev;10 double w;11 } p[10000];12 int cmp(const void *a,const void *b)13 {14 return (*(struct edge *)a).w>(* 阅读全文
posted @ 2012-06-13 16:02 Naix_x 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 题目链接真郁闷。。。模版题,由于自己SB错误,错了5 6 次。。。不过也有好处,加深对模版的理解了。。 kruskal 模版 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 int o[101],sum,num; 5 struct edge//图的结构体 6 { 7 int sv,ev,w;//起始边,终边,权值。 8 }; 9 struct edge p[10000];//必须开到大于(n*n-1)/2,否则必然RE。。。10 int comp(const void *a 阅读全文
posted @ 2012-06-13 15:05 Naix_x 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 题目链接裸BFS,不复杂。 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 int p[27][27],o[27],key[27]; 5 int main() 6 { 7 int i,j,len,end,start,a,z; 8 char str[1000]; 9 while(scanf("%s",str)!=EOF)10 {11 z = 0;12 memset(p,0,sizeof(p));13 memset(o,0,sizeo... 阅读全文
posted @ 2012-06-12 21:12 Naix_x 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 看到von学长的日志,好久没写总结了,我写写最近的心情。刚刚在北边的实验室有了一台电脑,还没怎么过几天,就要搬家了。最近我干了些什么呢?复习?还是做题了?我感觉两方面都不是很好,省赛结束后,自己真是意识到自己的差距,知识面还太窄,终于开始学了新的算法,BFS和DFS,没学的时候总是以为很难,很排斥,了解了之后,觉得也没有想象中的那么难啊.现在的课是真的很少了,虽然复习压力很大,要提高效率,利用好时间。明天就要考离散了,还是一门一门的接受挑战吧。。。 学长的日志中说到了风气问题,我觉得我是没资格说这个问题的,虽然心里有很多的想法,但是我还是忍住吧。或许内心里我就是个自私的人,别人我才不管呢,就. 阅读全文
posted @ 2012-06-12 17:41 Naix_x 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 题目链接题目好理解,汉语的。。。电视上也见过这样的智力游戏,以前看过书,提示是广搜,今天想了一下,思路还是挺清晰的,搜6种情况,如A B C三个杯子,A 到B,A到C,B到A,B到C,C到A,C到B。我实现的很麻烦啊,还好在各种调试,各种DEBUG之后,1Y。 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 int p[102][102],o1[10000],o2[10000],o3[10000]; 5 int main() 6 { 7 int i,j,s,n,m,star 阅读全文
posted @ 2012-06-12 11:00 Naix_x 阅读(265) 评论(0) 推荐(0) 编辑