196UVa电子表格
来源:互联网 发布:免费音乐广告制作软件 编辑:程序博客网 时间:2024/05/01 10:43
参考了别人的“没有必要进行拓扑排序”
#include<stdio.h>#include<ctype.h>#include<stdlib.h>#include<string.h>char* sheet[1000][18300];char str[100];char ALPHA[27]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";char NUM[10]="123456789";int r,c;bool parse(char*& s,int& i,int& j);void dfs(int i,int j){if(isdigit(sheet[i][j][0]))return;int ii,jj;char *s = sheet[i][j];int sum = 0;bool contin;do{contin = parse(s,ii,jj);dfs(ii,jj);int n = 0;for(int k = 0; k < strlen(sheet[ii][jj]);k++){n = n*10+sheet[ii][jj][k]-'0';}sum +=n;}while(contin);sprintf(sheet[i][j],"%d",sum);}bool parse(char*& s,int& i,int& j){bool nflag = true;char* pal=strpbrk(s,ALPHA);char* pnum=strpbrk(s,NUM);char* pend=strchr(s,'+');if(pend ==0){nflag = false; //no morepend = s+strlen(s);}if(pnum-pal==1){j=*pal-'A'+1;}else if(pnum-pal==2){j=26*(*(pal)-'A'+1)+*(pal+1)-'A'+1;}else if(pnum-pal==3){j=26*26*(*pal-'A'+1)+26*(*(pal+1)-'A'+1)+*(pal+2)-'A'+1;}i=0;while(pnum < pend){i = i*10+*pnum-'0';pnum++;}s = pend+1;return nflag;}int main(){//freopen("input.txt","r",stdin);int T;scanf("%d",&T);while(T--){scanf("%d%d",&c,&r);for(int i = 1; i <= r;i++){for(int j = 1; j <= c;j++){scanf("%s",str);sheet[i][j] = (char*)malloc(sizeof(str)+1);strcpy(sheet[i][j],str);}}for(int i = 1; i <= r;i++){for(int j = 1; j <= c;j++){ if(!isdigit(sheet[i][j][0])){dfs(i,j);}printf("%s",sheet[i][j]);if(j!= c ) putchar(' ');}putchar('\n');}for(int i = 1; i <= r;i++){for(int j = 1; j <= c;j++){ delete[] sheet[i][j];}}}}
0 0
- UVa 196 电子表格
- uva 196 Spreadsheet(电子表格)
- 196UVa电子表格
- uva 512 追踪电子表格中的单元格
- 追踪电子表格中的单元格(uva-512)
- uva 512 追踪电子表格中的单元格
- 例题 4-5 追踪电子表格中的单元格(Spreadsheet Tracking) UVa 512
- .NET电子表格
- SpreadJS电子表格
- google 电子表格体验
- 导出Execl(电子表格)总结
- DataGridView导出电子表格
- eXpresso: 在线Excel电子表格
- GridView导出电子表格
- Java操作Excel电子表格
- 电子表格常用函数
- Java操作Excel电子表格
- 新的FLEX电子表格
- 运行到指定EIP处, 打内存补丁
- VB.net应用技巧5: VB.net 除法运算
- tf.gather_nd(params, indices, name=None)
- 51NOD 1060 最复杂的数 【反素数】
- Leetcode 151. Reverse Words in a String
- 196UVa电子表格
- <Python初学>Python中的变量类型。对赋值、浅拷贝与深拷贝的初步认识。
- Leetcode 98. Validate Binary Search Tree
- Leetcode 100. Same Tree
- COVER王锐大大——最长的一帧(第四日)
- Leetcode 101. Symmetric Tree
- Python轻松入门-09 Range函数和While循环
- Leetcode 43. Multiply Strings
- Rails:Ubuntu下连接Git提示Permission denied的解决方法