UVa512-Spreadsheet Tracking
来源:互联网 发布:豆瓣评分算法 编辑:程序博客网 时间:2024/06/08 14:20
UVa512-Spreadsheet Tracking
思路:
因为要跟踪单元格而且要查询多次如果同时跟踪所有单元格的改变会很麻烦,所以我们只用把所有的操作给保存下来,然后每次跟踪一个单元格,查询一次就按照顺序再操作一次。另外还要注意的是因为删除和插入的顺序是没有影响的所以同一个操作的所有列或行是同时被改变的,所以要先记录再更改。
代码:
#include <bits/stdc++.h>using namespace std;int change(string s,int &r,int &c){ int n; stringstream ss(s); ss>>s; if(s=="DR") { ss>>n; int ans,t=0; for(int i=0;i<n;i++) { ss>>ans; if(ans<r) t++; else if(ans==r) return 1; } r-=t; } else if(s=="DC") { ss>>n; int ans,t=0; for(int i=0;i<n;i++) { ss>>ans; if(ans<c) t++; else if(ans==c) return 1; } c-=t; } else if(s=="IR") { ss>>n; int ans,t=0; for(int i=0;i<n;i++) { ss>>ans; if(ans<=r) t++; } r+=t; } else if(s=="IC") { ss>>n; int ans,t=0; for(int i=0;i<n;i++) { ss>>ans; if(ans<=c) t++; } c+=t; } else if(s=="EX") { int x,y,x2,y2; ss>>x>>y>>x2>>y2; if(r==x&&c==y) r=x2,c=y2; else if(r==x2&&c==y2) r=x,c=y; } return 0;}int main(){ int r,c,n,p=1; string s; while(scanf("%d%d",&r,&c),r+c) { if(p>1)printf("\n"); printf("Spreadsheet #%d\n",p++); vector<string>ve; cin>>n;getchar(); while(n--) { getline(cin,s); ve.push_back(s); } cin>>n; while(n--) { int a,b,i; cin>>a>>b; printf("Cell data in (%d,%d) ",a,b); for(i=0;i<ve.size();i++) { if(change(ve[i],a,b)) break; } if(i!=ve.size()) printf("GONE\n"); else printf("moved to (%d,%d)\n",a,b); } } return 0;}
阅读全文
0 0
- UVA512 - Spreadsheet Tracking
- UVa512 - Spreadsheet Tracking
- UVALive5198 UVA512 Spreadsheet Tracking
- UVa512-Spreadsheet Tracking
- UVa512 Spreadsheet Tracking
- [UVA512]Spreadsheet Tracking[模拟][STL]
- 例题4-5 UVa512 Spreadsheet Tracking
- 思维水题:UVa512-Spreadsheet Tracking
- Spreadsheet Tracking
- Spreadsheet Tracking
- Spreadsheet Tracking
- Spreadsheet Tracking
- UVa_512 - Spreadsheet Tracking
- 512 - Spreadsheet Tracking
- 512 - Spreadsheet Tracking
- UVA - 512 Spreadsheet Tracking
- Uva - 512 - Spreadsheet Tracking
- UVA - 512 Spreadsheet Tracking
- (HDU
- linux c udp接收超时设置
- 我要继续坚持梦想,把我的demo变成产品!
- Windows上重定向到剪贴板的小技巧
- 2017 Multi-University Training Contest
- UVa512-Spreadsheet Tracking
- ~背包专题~01背包初体验
- HDU 2196 Computer(树的直径的模板题)
- 兼容emojo表情
- Battleships in a Board问题及解法
- 虚拟机类加载机制
- python处理要素类与excel关联的数据
- 全栈工程师
- 菜单的利用以及侧拉栏的使用