UVA-1103- Ancient Messages
来源:互联网 发布:双翼群发软件 编辑:程序博客网 时间:2024/04/30 12:27
#include<stdio.h>#include<iostream>#include<string>#include<string.h>#include<vector>#include<sstream>#include <math.h>#include<stdlib.h>using namespace std;int pic[1000][300],num[7],kase=1,cnt,m,n,s[16][4]={ {0,0,0,0},{0,0,0,1},{0,0,1,0},{0,0,1,1}, {0,1,0,0},{0,1,0,1},{0,1,1,0},{0,1,1,1}, {1,0,0,0},{1,0,0,1},{1,0,1,0},{1,0,1,1}, {1,1,0,0},{1,1,0,1},{1,1,1,0},{1,1,1,1}};char str[17]="0123456789abcdef",st[6] = {'A', 'D', 'J', 'K', 'S', 'W'};void dfs(int i,int j){ if(i < 0||i > m+1||j <0||j > n+1||pic[i][j] != 0) return; pic[i][j] = -1; dfs(i-1,j); dfs(i+1,j); dfs(i,j-1); dfs(i,j+1);}void dfs2(int i,int j){ if(pic[i][j] == -1||i < 0||i > m+1||j <0||j > n+1) return; if(!pic[i][j]) { cnt++; dfs(i,j); return; } pic[i][j] = -1; dfs2(i-1,j); dfs2(i+1,j); dfs2(i,j-1); dfs2(i,j+1);}int main(){ while(scanf("%d%d",&m,&n)&&m&&n) { memset(pic,0,sizeof(pic)); memset(num,0,sizeof(num)); for(int i = 1;i <= m;i++) //第i行 { int len = 1; getchar(); for(int j = 1;j <= n;j++) //第j个字符 { char temp; scanf("%c",&temp); for(int k = 0;k<16;k++) if(temp==str[k]) { for(int l = 0;l<4;l++) pic[i][len++]=s[k][l]; break; } } } n=n*4; //这就是上面为什么不能从i = 0开始算的原因 dfs(0,0); //盲区 for(int i = 1;i <=m;i++) for(int j = 1;j <=n;j++) if(pic[i][j] == 1) { cnt = 0; dfs2(i,j); if(!cnt) num[5]++; else if(cnt == 1) num[0]++; else if(cnt == 2) num[3]++; else if(cnt == 3) num[2]++; else if(cnt == 4) num[4]++; else num[1]++; } printf("Case %d: ", kase++); for(int i = 0; i < 6; i++) while(num[i]--) printf("%c", st[i]); puts(""); } return 0;}注意边界情况,注意跳出递归的条件
0 0
- UVA-1103- Ancient Messages
- Uva - 1103 - Ancient Messages
- uva 1103 Ancient Messages
- UVA 1103 Ancient Messages
- UVA-1103 Ancient Messages
- UVA 1103 Ancient Messages DFS
- UVA 1103 Ancient Messages (DFS)
- UVa 1103 Ancient Messages (DFS)
- UVA 1103 Ancient Messages dfs
- uva 1103 Ancient Messages WA
- UVa 1103 - Ancient Messages(DFS:Floodfill)
- UVa 1103 - Ancient Messages (DFS)
- UVA - 1103 Ancient Messages dfs+stl
- uva 1103 Ancient Messages (古象形文字)
- uva 816 Ancient Messages (BFS)
- 1103 - Ancient Messages
- 1103 - Ancient Messages.
- UVa 1103 - Ancient Messages [进制转换+DFS]
- Peer.js Based Video Share Among Connected Peers (基于Peer.js实现的对等端间视频共享)
- /etc/mtab
- python安装pip简易过程
- IOS检查邮箱是否合法
- 碧波碧波动感光波超人
- UVA-1103- Ancient Messages
- Android 最火的快速开发框架XUtils
- jQuery框架开发一个最简单的幻灯效果
- 崩他么哔哔,赶紧收录
- 联想S820 MIUI刷机包 MIUI 4.4.30 流畅运行 在线主题破解
- Hibernate二级缓存相关和HQL
- IOS中几个常用的宏
- 电阻抗成像法是什么?
- 定时运行作业