uva196
来源:互联网 发布:淘宝贷款如何开通 编辑:程序博客网 时间:2024/06/10 21:17
#include <iostream>#include <stdio.h>#include <string.h>#include <stdlib.h>using namespace std;int m,n;string s[1000][20000];char c[1000*1000];//c是全局变量,在内层的dfs中c已经被修改了!int map_[1000][20000];bool vis[1000][20000];int dfs(string s1)//dfs计算这个字符串的结果{ strcpy(c,s1.c_str()); int num=0; int len=s1.length(); for(int i=0;i<len;i++) { int x=0; int y=0; while(s1[i]!='+' && s1[i]!='\0')//再加一就遇到了外层循环的判断条件! { if(s1[i]<='Z' && s1[i]>='A') y=y*26+s1[i]-'A'+1; else if(s1[i]<='9' && s1[i]>='0') x=x*10+s1[i]-'0'; i++; } if(!vis[x][y]) { map_[x][y]=dfs(s[x][y]); vis[x][y]=true;//没有更新这个vis数组……找了好久 num+=map_[x][y]; } else num+=map_[x][y]; } return num;}int main(){ // freopen("debug\\in.txt","r",stdin); // freopen("debug\\out.txt","w",stdout); int cases; cin>>cases; while(cases--) { memset(map_,0,sizeof(map_)); memset(vis,0,sizeof(vis)); scanf("%d%d",&m,&n); for(int i=1; i<=n; i++) for(int j=1; j<=m; j++) cin>>s[i][j]; for(int i=1; i<=n; i++) for(int j=1; j<=m; j++) { strcpy(c,s[i][j].c_str()); if(c[0]!='=') { sscanf(c,"%d",&map_[i][j]); vis[i][j]=true; } } for(int i=1; i<=n; i++) for(int j=1; j<=m; j++) { if(s[i][j][0]=='=') { map_[i][j]=dfs(s[i][j]); vis[i][j]=true; } } for(int i=1; i<=n; i++) { for(int j=1; j<=m; j++) { if(j!=m) cout<<map_[i][j]<<" "; else cout<<map_[i][j]<<endl; } } } return 0;}/*210 101 =J10 =G6 =I5 =D2 =A10 =B6 =B7 =E5 =D7=I2 =C10 =G3 =G5 =B7 =F8 =J1 =H3 =E9 =I10=G5 =E9 =A1 =B9 =I7 =I5 =A10 2 =D3 =B3=G3 =H4 =A1 =C10 =H3 =J10 =J6 =H2 =E7 =C6=C9 =A2 =I5 4 =D5+G5 =D6 =B6 =B2 =G6 =A7=D9 =I7 =I2 =A1+G5 =A2 =J3 =A1+D5 =F3 =J9 =F1=F1 =D6 =D5 =A4 =J7 =H2 =E5 =J1 =E4 =J3=I10 =E9 =I1 =F1 =J1 =D5 =I10 =C3 =C3 =H3=A7 =D5 =E1 =D6 =D3 =I2 =H10 =G9 =G3 =I2=C4 =I1 =A8 =E2 =C2 =C3 =B9 =E5 =C8 =B51 4 5 5 2 1 2 3 6 14 6 1 2 3 4 1 2 4 62 4 1 4 2 5 1 2 4 41 2 1 6 2 4 1 2 4 42 4 5 4 6 3 2 6 5 13 2 4 3 4 4 5 5 4 11 3 4 1 4 2 6 1 2 46 4 6 1 1 4 6 1 1 21 4 2 3 4 4 6 6 1 41 6 6 3 1 1 4 6 6 4*/
可以说是调了很长时间了……
阅读全文
0 0
- uva196
- uva196
- uva196
- uva196 Spreadsheet
- uva196 - Spreadsheet(电子表格)
- UVA196拓扑排序形式的搜索
- 链表
- json
- 幸运三角形
- 如何做一个自动聊天的机器人或者绑定自己的微信,QQ.......
- Java中各个知识点的简短概述
- uva196
- Oracle 简单描述oracle坏块修复步骤
- 机器学习实战读书笔记----利用Adaboost元算法提高分类性能
- mybatis中Insert方法返回主键的功能
- 51Nod 1283 最小周长
- java notify和notifyAll的区别
- CD4017
- NanoPi K2无法下载Android源码
- 如何使用FindBugs进行安全扫描