【例题 4-5 uva 512】Spreadsheet Tracking
【链接】 我是链接,点我呀:)
【题意】
在这里输入题意
【题解】
每个操作对与一个点来说变化是固定的。
因此可以不用对整个数组进行操作。
对于每个询问,遍历所有的操作。对输入的(x,y)进行相应的变换就好了。
数据之间有空行。
【代码】
/*
ope=0 EX操作 交换a[x1][y1],a[x2][y2]
ope=1 DR操作 删除v中的行(无序)
ope=2 IR操作 在v中的位置插入空行(无顺序)
ope=3 DC操作 删除v中的列(无序)
ope=4 IC操作 插入v中的列(无序)
*/
#include <bits/stdc++.h>
using namespace std;
int r,c;
int n;
struct abc{
int ope;
vector<int> v;
};
abc temp;
vector<abc> a;
void input_mul(int ope){
temp.ope = ope;
temp.v.clear();
int cnt;cin >> cnt;
for (int j = 0;j < cnt;j++){
int x;
cin >> x;
temp.v.push_back(x);
}
a.push_back(temp);
}
int main()
{
//freopen("/home/ccy/rush.txt","r",stdin);
ios::sync_with_stdio(0),cin.tie(0);
int kase = 0;
while (cin >> r >> c){
if (r==0 && c==0) break;
if (kase>0) cout<<endl;
cout<<"Spreadsheet #"<<++kase<<endl;
a.clear();
cin >> n;
for (int i = 0;i < n;i++){
string ts;
cin >> ts;
if (ts=="EX"){
temp.ope = 0;
temp.v.resize(4);
for (int j = 0;j < 4;j++) cin >> temp.v[j];
a.push_back(temp);
}
if (ts=="DR") input_mul(1);
if (ts=="IR") input_mul(2);
if (ts=="DC") input_mul(3);
if (ts=="IC") input_mul(4);
}
int q;
cin >> q;
while (q--){
int x,y,tx,ty;
cin >> x >> y;
tx = x,ty = y;
bool ok = 1;
for (int i = 0;i < (int) a.size();i++){
if (a[i].ope==0){
int x1,y1,x2,y2;
x1 = a[i].v[0],y1 = a[i].v[1];
x2 = a[i].v[2],y2 = a[i].v[3];
if (x1==x && y1 == y){
x = x2;y = y2;
}else
if (x2==x && y2==y){
x = x1;y = y1;
}
}
if (a[i].ope==1){
int subx = 0;
for (int rr:a[i].v){
if (rr<x) subx++;else if (rr==x) ok = 0;
}
x-=subx;
}
if (a[i].ope==2){
int addx = 0;
for (int rr:a[i].v){
if (rr<=x) addx++;
}
x+=addx;
}
if (a[i].ope==3){
int suby = 0;
for (int cc:a[i].v){
if (cc<y) suby++;else if (cc==y) ok = 0;
}
y-=suby;
}
if (a[i].ope==4){
int addy = 0;
for (int cc:a[i].v){
if (cc<=y) addy++;
}
y+=addy;
}
}
cout<<"Cell data in ("<<tx<<","<<ty<<") ";
if (ok==0){
cout<<"GONE"<<endl;
}else{
cout<<"moved to ("<<x<<","<<y<<")"<<endl;
}
}
}
return 0;
}
【例题 4-5 uva 512】Spreadsheet Tracking的更多相关文章
- Uva - 512 - Spreadsheet Tracking
Data in spreadsheets are stored in cells, which are organized in rows (r) and columns (c). Some oper ...
- Spreadsheet Tracking
Spreadsheet Tracking Data in spreadsheets are stored in cells, which are organized in rows (r) and ...
- uva 512
1. 问题 不知道怎么存储操作 看代码注释,else if等 2. 代码 #include <iostream> #include <stdio.h> #include < ...
- 踪电子表格中的单元格(Spreadsheet Tracking, ACM/ICPC World Finals 1997, UVa512)
有一个r行c列(1≤r,c≤50)的电子表格,行从上到下编号为1-r,列从左到右编号为1 -c.如图4-2(a)所示,如果先删除第1.5行,然后删除第3, 6, 7, 9列,结果如图4-2(b) 所示 ...
- UVA 215 Spreadsheet Calculator (模拟)
模拟题.每个单元格有表达式就dfs,如果有环那么就不能解析,可能会重复访问到不能解析的单元格,丢set里或者数组判下重复. 这种题首先框架要对,变量名不要取的太乱,细节比较多,知道的库函数越多越容易写 ...
- 思维水题:UVa512-Spreadsheet Tracking
Spreadsheet Tracking Data in spreadsheets are stored in cells, which are organized in rows (r) and c ...
- D5 LCA 最近公共祖先
第一题: POJ 1330 Nearest Common Ancestors POJ 1330 这个题可不是以1为根节点,不看题就会一直wa呀: 加一个找根节点的措施: #include<alg ...
- 算法笔记--斜率优化dp
斜率优化是单调队列优化的推广 用单调队列维护递增的斜率 参考:https://www.cnblogs.com/ka200812/archive/2012/08/03/2621345.html 以例1举 ...
- 回文树&后缀自动机&后缀数组
KMP,扩展KMP和Manacher就不写了,感觉没多大意思. 之前感觉后缀自动机简直可以解决一切,所以不怎么写后缀数组. 马拉车主要是通过对称中心解决问题,有的时候要通过回文串的边界解决问题 ...
随机推荐
- linux驱动注册汇总
--- 01)TP file_operations: { 1. static struct file_operations tpd_fops = { // .owner = THIS_MODULE, ...
- Django 创建新项目后要完成的几个步骤
首先,在过一遍创建新项目的步骤: -创建一个新项目 -建了数据库后要确定自己是用 mysql数据库 还是用 sqlite3数据库 -如果是mysql数据库,那一堆配置 -如果是sqlite3数据库, ...
- idea常用快捷键(转)
---恢复内容开始--- IntelliJ Idea 常用快捷键列表 Ctrl+Shift + Enter,语句完成 “!”,否定完成,输入表达式时按 “!”键 Ctrl+E,最近的文件 Ctrl+S ...
- idea UML快捷键
- 反射找Controller中的方法
/// <summary> /// 根据接口编码APICode,调用相应的webapi方法,注意返回值是json字符串 /// </summary> /// <param ...
- C# 多线程系列(二)
传递数据给一个线程 通过函数或lambda表达式包一层进行传递. static void Main(string[] args) { Thread thread = new Thread(() =&g ...
- Vue掉坑记
本文章汇总学习过程中掉入和不理解的坑,会持续更新,请保持关注 1.过滤器类 搜索过滤 2.修饰符 修饰符汇总 3.webpack webpack+vuecli打包路径 4.Vue后台管理框架 组件后台 ...
- Go中的main函数和init函数
Go里面有两个保留的函数:init函数(能够应用于所有的package)和main函数(只能应用于package main).这两个函数在定义时不能有任何的参数和返回值.虽然一个package里面可以 ...
- 《java数据结构与算法》系列之“开篇”
大学的时候学习数据结构,当时吧虽然没挂这门课,但是确实学的不咋地,再但是其实自己一直都觉得数据结构很重要,是基础,只有基础好了,后面的路才能走的更好. 懒惰真的是天下的罪恶之源.所以一直到现在都毕业了 ...
- 省市区县的sql语句——省
/*SQLyog v10.2 MySQL - 5.5.48 : Database - 省市县****************************************************** ...