hau1198 这个代码一直w 思路对啊 还有特殊情况吗? 求指教
2012-10-19 15:00
302 查看
#include<stdio.h> #include<string.h> int mapCheck[12][5]; char map[600][600]; int far[3000]; int rank[3000]; void inti1() { memset(mapCheck,0,sizeof(mapCheck)); mapCheck[1][2]=1; mapCheck[1][3]=1; mapCheck[2][3]=1; mapCheck[2][4]=1; mapCheck[3][1]=1; mapCheck[3][2]=1; mapCheck[4][1]=1; mapCheck[4][4]=1; mapCheck[5][2]=1; mapCheck[5][4]=1; mapCheck[6][1]=1; mapCheck[6][3]=1; mapCheck[7][3]=1; mapCheck[8][2]=1; mapCheck[9][1]=1; mapCheck[10][4]=1; } void init2(int n) { for(int i=1; i<=n; i++) { far[i]=i; rank[i]=1; } } int find_set(int n) { if(n==far ) return n; far =find_set(far ); return far ; } void Union_set(int x,int y) { int xx=find_set(x); int yy=find_set(y); if(xx==yy) return ; far[xx]=yy; } int main() { int m,n; int ans; inti1(); while(scanf("%d%d",&m,&n)!=EOF) { getchar(); if(m==-1&&n==-1) break; ans=0; memset(map,0,sizeof(map)); for(int j=1;j<=m;j++) { scanf("%s",map[j]+1); } int big=n*m; init2(big); for(int i=2; i<=n; i++) //0代表有 1代表没有 { if(mapCheck[map[1][i-1]-'A'+1][2]==0&&mapCheck[map[1][i]-'A'+1][4]==0) { Union_set(i-1,i); } } for(int i=2; i<=m; i++) for(int j=1; j<=n; j++) { if(mapCheck[map[i-1][j]-'A'+1][3]==0&&mapCheck[map[i][j]-'A'+1][1]==0) { Union_set((i-1-1)*n+j,(i-1)*n+j); } if(mapCheck[map[i][j+1]-'A'+1][4]==0&&mapCheck[map[i][j]-'A'+1][2]==0) { Union_set((i-1)*n+(j+1),(i-1)*n+j); } } for(int i=1; i<=m*n; i++) { if(find_set(i)==i) ans++; } printf("%d\n",ans); } return 0; } /* 2 2 DK HF 3 3 ADC FJK IHE */
相关文章推荐
- HTML5绘制矩形和圆形并且还有获取在这个图层内的坐标的思路和代码 - feilong_12的专栏 - 博客频道 - CSDN.NET
- HTML5绘制矩形和圆形并且还有获取在这个图层内的坐标的思路和代码
- window.location.href妙用 标签里用js 利用这个简单的转换思路 实现 一直也无法实现的在 页面的html标签使
- 这个天气怎么就这么热啊,哪里还有心情写代码呀。
- 关于一直卡死的两段代码,望对LDD3有兴趣者戳开这个blog : )
- 参考了别人的暴力代码 自己的错误在与 思路并不复杂 但是自己的map并没有请空 这个错误 要改
- 特殊情况下,把后台的代码写到前台上。实现前台数据的读取:
- 有碰到过copy代码的时候 多了一些特殊的 1. 2. 类似这样的 东东嘛 那么就请用下面这个类吧。
- 如何写出无法维护的代码——还有人研究这个,洗具还是悲剧?
- 一些看起来很特殊的for循环代码,以及sizeof和strlen代码运行机制,还有#define
- 输出0到100之间的偶数,还有比这个更简单的代码吗?
- 火车票购票代码公开,按照这个思路,可以写个抢票代码~
- 大家应该都用过SVN,多个小组开发时,分小组提交代码,可是有特殊情况的,小组要穿插提交增量文件,该怎么做呢?SVN补丁是一种能导出变更增量的方法。
- 尴尬三:这个职位会遇到一些特殊情况,你能胜任吗
- 添段代码可以实现增加附件的功能,这几天一直在搞这个
- 关于应对代码版本管理机制不完全的情况下项目发包管理思路
- 稀奇1:神奇的代码-------你绝对想不到浏览器还有这个功能!【超级好用~不顶勿近】
- 金山训练营的一小题(可能我的这个算法不是太好,呵呵,不知各位还有其他的思路没)
- 代码简洁之道--特殊情况一般化
- 试问,若在try语句块里有一个return语句,同时这个try语句块后面还有一个finally语句块,请问finally语句块里的代码会不会被执行?若答案是肯定的,那么会在什么时候被执行?是在retu