2012年3月17日
摘要: 这道题先判断给出的路能否让村庄联通,如果能够联通就输出最少要修多长的路,如果不能联通,就输出“?”。判联通时,用并查集,判断这些村庄能否在一个集合。 如果在一个集合,接着用prim算法求最小生成树。哈哈哈,幸亏我先前研究过并查集。很简单,简直是两个模板的综合。 0ms ,AC!好爽AC:#include<stdio.h>#include<string.h>int map[101][101];int low[101];int visit[101];int set[101];int n,m; //n条路, m个村儿int find(int x){int r;r=x;whil 阅读全文
posted @ 2012-03-17 17:45 hrbust_09zhangyabin 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 这道题还是用用prim,模板题。和1233畅通工程很类似。做1233时很顺手,做这道时,稍有不同。题中说明,有些路已经修好,不用再修了。求还要最少修多长的路才能全部连通。kao,刚开始想想歪了,不知道怎么处理那些已经联好的路。又是用邻接矩阵,又是用并查集,相邻好几个代码。都不行,最后看了一眼宪哥的代码。看到他把相连接的两条路之间的距离置为0, 一下就明白了。一改,过了。 中的来说,没变,还是prim算法。AC代码#include<stdio.h>#include<string.h>int map[101][101];int low[101];int visit[101] 阅读全文
posted @ 2012-03-17 16:34 hrbust_09zhangyabin 阅读(128) 评论(0) 推荐(0) 编辑
  2012年3月16日
摘要: prim模板这道题是我同时参考两个模板,才敲出来的!总的说,还行,一次AC!prim已经理解了,加快进度啊!下午掌握Kruskal算法。AC代码:#include<stdio.h>#include<stdlib.h>#include<string.h>int map[101][101];int low[101]; //辅助数组,第 i(i不属于U集合)个点到 U 集合的最短距离 int visit[101];const int da=100000000;int n;int prim(){int result=0;int i,j,k;int pos;int m 阅读全文
posted @ 2012-03-16 14:44 hrbust_09zhangyabin 阅读(155) 评论(0) 推荐(0) 编辑
  2012年3月13日
摘要: 这道题挺有意思,输入两个16进制的数,输出他们的和!例如:1 9A Ba b1 9A Ba bAC代码:#include<stdio.h>int main(){int a,b;while(scanf("%x%x",&a,&b)!=EOF)printf("%d\n",a+b);return 0;}实在没想到还能这么写,受教了!可见对进制转换还是不够了解。 阅读全文
posted @ 2012-03-13 21:59 hrbust_09zhangyabin 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 写完这个题,不得不思考,什么时候学STL。一道简简单单的题被我写成这个样子,真伤心啊!126行代码,别人60行就搞定了。#¥#%*@&........累啊!虽然也是0ms过的!唉,但是写的时候好费力啊!可以说花了整整一个晚上。说实话,题很简单,就是比一般的BFS多加两个方向而已。输入时一个超低级的错误浪费我好久时间。下次注意,细心。不说了,模板题!AC:#include<stdio.h>#include<string.h>char map[12][12][12]; //记录星际地图 int step[12][12][12]; //记录第走到第 step[i][j 阅读全文
posted @ 2012-03-13 21:16 hrbust_09zhangyabin 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 没事敲了个最长公共子序列,按照自己笔记本上模板算法! 先敲了一个递归算法的,敲时就感觉费事儿!一提交,果断超时!无语,..........还好哥有个非递归模板,敲完一交。31ms!差距好大啊,以后就用非递归吧!模板在此AC:#include<stdio.h>#include<string.h>char a[10001],b[10001];int c[10001][10001];int lcs_len(int m,int n){int i,j;for(i=0;i<=m;i++)c[i][0]=0;for(i=0;i<=n;i++)c[0][i]=0;for(i 阅读全文
posted @ 2012-03-13 14:51 hrbust_09zhangyabin 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 一件很蛋疼的事,hdu的网我有时总上不去,真烦人!(虽然后来还是上去了,但折腾时间)。而且发现就我自己有这问题,第一次打开网址是很慢,要耐心(真扯)!等第一次上去之后又就好多了,一天都不会出现问题。上午无聊,刷个水题。先用辗转相除法,求得最大公约数,然后两数之积除去最大公约数,记得到最大公倍数。#include<stdio.h>int gcd(int a,int b){int temp;while(b){temp=a%b;a=b;b=temp;}return a;}int main(){int a,b;while(scanf("%d%d",&a,& 阅读全文
posted @ 2012-03-13 09:42 hrbust_09zhangyabin 阅读(171) 评论(0) 推荐(0) 编辑
  2012年3月12日
摘要: 很明显啊!调用STL简单多了,省了30行代码#include<iostream>#include<queue>#include<string.h>using namespace std;char ch[22][22];int r,c;int XX[4][2]={{-1,0},{0,-1},{0,1},{1,0}};struct node{int x,y;};int bfs(int bx,int by,int Sum){ int k; int xx,yy; node t,tt; queue<node>qu; t.x=bx,t.y=by; qu.pu 阅读全文
posted @ 2012-03-12 21:46 hrbust_09zhangyabin 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 因为这是我第一道BFS模板题,想深刻理解,所以不想用STL。就自己写了一个队列,说实话,调用STL真方便啊!等我对算法熟练掌握后,也要用!!算法是固定的:DFS。 因为加了队列代码有点长啊!但总体还是比较清晰的。AC代码:#include<stdio.h>#include<string.h>char ch[22][22];int r,c;int fan[4][2]={{-1,0},{0,-1},{0,1},{1,0}};struct queue //自己搞一个队列玩儿 {int x[100000]; //记录x ,和y坐标 int y[100000]; int fron 阅读全文
posted @ 2012-03-12 21:40 hrbust_09zhangyabin 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 唉,为什么泥!因为星期六晚上没睡好呗,................为什么没睡好呢?...................不说了,反正过去了。结果那个星期天过得好混沌啊!一天无精打采,唉,伤感情啊!一天都没学到什么东西。时间就白花花的流过去。 所以,以后可绝不能在这样了,要加快进度了~ 阅读全文
posted @ 2012-03-12 07:45 hrbust_09zhangyabin 阅读(117) 评论(0) 推荐(0) 编辑