UVa 1103 - Ancient Messages [进制转换+DFS]
来源:互联网 发布:网络直播问题 编辑:程序博客网 时间:2024/05/18 01:06
提供三组测试数据吧:
5 3
fff
f0f
fff
f0f
fff
5 5
0fff0
0f0f0
fffff
00f00
00f00
5 5
0f0f0
0f0f0
fffff
00f00
00f00
0 0
AC输出是:
Case 1: K
Case 2: A
Case 3: W
做题的时候,发现使用ios::sync_with_stdio(false);就会WA,注释掉就AC,不知道是什么情况,正在研究中。
#include <bits/stdc++.h>using namespace std;const string dict[16] = {"0000", "0001", "0010", "0011","0100", "0101", "0110", "0111","1000", "1001", "1010", "1011","1100", "1101", "1110", "1111",};const int dir[4][2] = { { -1, 0 }, { 0, -1 }, { 1, 0 }, { 0, 1 } };const char alp[8] = { 'W', 'A', 'K', 'J', 'S', 'D' };map<char, int> cnt;char tab[256][256];int H, W, kase, cur;bool isin(const int r, const int c){return r >= 0 && r <= H + 1 && c >= 0 && c <= W + 1;}void DFS1(const int r, const int c){if (!isin(r, c) || tab[r][c]!='0') return;tab[r][c] = '-';for (int i = 0; i < 4; ++i)DFS1(r + dir[i][0], c + dir[i][1]);}void DFS2(const int r, const int c){if (!isin(r, c) || tab[r][c] != '1') return;tab[r][c] = '-';for (int i = 0; i < 4; ++i){int r1 = r + dir[i][0], c1 = c + dir[i][1];if (tab[r1][c1] == '0')++cur, DFS1(r1, c1);else DFS2(r1, c1);}}int main(){//ios::sync_with_stdio(false);while (memset(tab, '0', sizeof(tab)), cnt.clear(), cin >> H >> W, H || W){W *= 4;for (int i = 1; i <= H; ++i){string line, res; cin >> line;for (auto i : line) res += dict[i >= 'a' ? (i - 'a' + 10) : (i - '0')];memcpy(tab[i]+1, res.c_str(), W);}DFS1(0, 0);for (int i = 1; i <= H; ++i){for (int j = 1; j <= W; ++j){if (tab[i][j] != '1') continue;cur = 0;DFS2(i, j);cnt[alp[cur]]++;}}printf("Case %d: ", ++kase);for (auto i : cnt) while (i.second--) cout << i.first;cout << endl;}return 0;}
2 0
- UVa 1103 - Ancient Messages [进制转换+DFS]
- UVa 1103 - Ancient Messages [进制转换+DFS]
- UVA 1103 Ancient Messages DFS
- UVA 1103 Ancient Messages (DFS)
- UVa 1103 Ancient Messages (DFS)
- UVA 1103 Ancient Messages dfs
- UVa 1103 - Ancient Messages(DFS:Floodfill)
- UVa 1103 - Ancient Messages (DFS)
- UVA - 1103 Ancient Messages dfs+stl
- UVA-1103- Ancient Messages
- Uva - 1103 - Ancient Messages
- uva 1103 Ancient Messages
- UVA 1103 Ancient Messages
- UVA-1103 Ancient Messages
- uva 1103 Ancient Messages WA
- uva 1103 Ancient Messages (古象形文字)
- uva 1103 - Ancient Messages(象!形!文!字! dfs遍历计数)
- HDU-3839-Ancient Messages(DFS)
- Anuko time tracker 填报工具
- JS校验开始时间和结束时间
- Linux下 Mysql 互为主从
- HDU 3306解题报告
- php读xml
- UVa 1103 - Ancient Messages [进制转换+DFS]
- jQuery和CSS3超酷二级下拉菜单插件
- zookeeper应用场景
- 重定向和转发有什么区别?分别通过什么方式来共享数据?
- java解析XML
- JS在iframe中动态的添加地址
- vs插件包的安装
- 游戏字库和win7字库不统一无法识别的问题
- TCP四次挥手关闭读写通道