uva 196(dfs)
来源:互联网 发布:ic卡制作软件 编辑:程序博客网 时间:2024/06/02 01:55
题解:题意是将给出的表格内是表达式的都将值最后输出出来,因此要注意计算表达式的优先顺序,方法深搜,找到直到不是表达式而是数值的就返回这个值。带字母的是26进制数。
#include <cstdio>#include <cstring>#include <iostream>#include <string>#include <cstdlib>using namespace std;const int N = 1005;const int INF = 0x3f3f3f3f;int row, col, g[N][N], n;string s[N][N];void init() {memset(g, 0, sizeof(g));n = 0;}int dfs(int x, int y) {if (g[x][y] != INF)return g[x][y];string str = s[x][y];int len = str.size();int temp = 0, x1, y1, val = 0;for (int i = 1; i < len; i++) {if (isalpha(str[i])) {for (; i < len && isalpha(str[i]); i++)temp = temp * 26 + str[i] - 'A' + 1;y1 = temp;temp = 0;}if (isdigit(str[i])) {for (; i < len && isdigit(str[i]); i++)temp = temp * 10 + str[i] - '0';x1 = temp;temp = 0;}if (str[i] == '+') {val += dfs(x1, y1);}if (i == len) {val += dfs(x1, y1);g[x][y] = val;val = 0;}}return g[x][y];}int main() {int t;string str;scanf("%d", &t);while (t--) {scanf("%d%d", &col, &row);getchar();init();for (int i = 1; i <= row; i++) for (int j = 1; j <= col; j++) {cin >> str;if (str[0] == '=') {g[i][j] = INF;s[i][j] = str;}else g[i][j] = atoi(str.c_str());}for (int i = 1; i <= row; i++)for (int j = 1; j <= col; j++)if (g[i][j] == INF)dfs(i, j);for (int i = 1; i <= row; i++) {for (int j = 1; j <= col - 1; j++)printf("%d ", g[i][j]);printf("%d\n", g[i][col]);}}return 0; }
0 0
- uva 196(dfs)
- 【DFS】UVA
- 【DFS】UVA
- uva 196 Spreadsheet(拓扑排序+DFS)
- UVA 196 & POJ 1420 Spreadsheet (DFS)
- uva 784(dfs)
- dfs uva-297-Quadtrees
- UVA 10318 简单dfs
- uva 11218 KTV(DFS)
- uva 301 Transportation (DFS)
- UVA 185(暴力DFS)
- UVA 11218 - KTV DFS
- uva 1267 - Network(dfs)
- uva 669 - Defragment(dfs)
- uva 10609 - Fractal(dfs)
- uva 784(dfs)
- Oil Deposits uva DFS
- XYZZY uva BFS+DFS
- JAVA 如何设置JTable的渲染器以及是否可编辑属性和其上的事件监听机制
- javascript函数申明与函数表达式
- excel读取
- Python 的格式化输出
- c#通过反射设置和获取值
- uva 196(dfs)
- 驱动开发之 键盘过滤驱动一键盘输入流程
- poj 1177 Picture
- Libsvm for Matlab 安装过程和其中的一些问题
- 解析txt后放入list中,太初级了。。
- [题解][LeetCode][Divide Two Integers]
- Java6开发WebService入门
- 【Android开发】java.lang.RuntimeException: Unable to instantiate activity ComponentInfo
- 关于JavaScript中的继承的一些理解