CF #367 DIV2 E
直接使用指针,交换时交换矩阵周围的指针即可。
#include <iostream>
#include <cstdio>
#include <cstring> using namespace std; const int N = 1005; struct dl{
int v;
struct dl *d, *r;
}e[N][N]; int main(){
int n, m , q;
scanf("%d%d%d", &n, &m, &q);
int x, y, s, t, h, w;
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++)
scanf("%d", &e[i][j].v);
} for(int i = 0; i <= n; i++){
for(int j = 0; j <= m; j++){
e[i][j].r = &e[i][j + 1];
e[i][j].d = &e[i + 1][j];
}
} for(int i = 1; i <= q; i++){
scanf("%d%d%d%d%d%d", &x, &y, &s, &t, &h, &w);
dl *pos1, *pos2;
pos2 = pos1 = &e[0][0];
int th = h, tw = w;
while(-- x) pos1 = pos1 -> d;
while(-- y) pos1 = pos1 -> r;
th = h, tw = w;
while(-- s) pos2 = pos2 -> d;
while(-- t) pos2 = pos2 -> r; dl* tp1 = pos1, *tp2 = pos2; for(int r = 1; r <= h; r++){
pos1 = pos1 -> d;
pos2 = pos2 -> d;
swap(pos1 -> r, pos2 -> r);
} for(int c = 1; c <= w; c++){
pos1 = pos1 -> r;
pos2 = pos2 -> r;
swap(pos1 -> d, pos2 -> d);
} for(int c = 1; c <= w; c++){
tp1 = tp1 -> r;
tp2 = tp2 -> r;
swap(tp1 -> d, tp2 -> d);
} for(int r = 1; r <= h; r ++){
tp1 = tp1 -> d;
tp2 = tp2 -> d;
swap(tp1 -> r, tp2 -> r);
}
} dl *pos1 = &e[0][0]; for(int i = 1; i <= n; i++){
pos1 = pos1 -> d;
dl *tmp = pos1;
for(int j = 1; j <= m; j++){
pos1 = pos1 ->r;
if(j == 1)
printf("%d", pos1 ->v);
else printf(" %d", pos1 ->v);
}
puts("");
pos1= tmp;
} return 0;
}
CF #367 DIV2 E的更多相关文章
- cf 442 div2 F. Ann and Books(莫队算法)
cf 442 div2 F. Ann and Books(莫队算法) 题意: \(给出n和k,和a_i,sum_i表示前i个数的和,有q个查询[l,r]\) 每次查询区间\([l,r]内有多少对(i, ...
- CF#603 Div2
差不多半年没打cf,还是一样的菜:不过也没什么,当时是激情,现在已是兴趣了,开心就好. A Sweet Problem 思维,公式推一下过了 B PIN Codes 队友字符串取余过了,结果今天早上一 ...
- CF R631 div2 1330 E Drazil Likes Heap
LINK:Drazil Likes Heap 那天打CF的时候 开场A读不懂题 B码了30min才过(当时我怀疑B我写的过于繁琐了. C比B简单多了 随便yy了一个构造发现是对的.D也超级简单 dp了 ...
- CF#581 (div2)题解
CF#581 题解 A BowWow and the Timetable 如果不是4幂次方直接看位数除以二向上取整,否则再减一 #include<iostream> #include< ...
- [CF#286 Div2 D]Mr. Kitayuta's Technology(结论题)
题目:http://codeforces.com/contest/505/problem/D 题目大意:就是给你一个n个点的图,然后你要在图中加入尽量少的有向边,满足所有要求(x,y),即从x可以走到 ...
- CodeForces #367 div2 D Trie
题目链接:Vasiliy's Multiset 题意:这里有一个set容器,有三种操作,+ num, - num, ? num,分别代表往容器里加上num,或者拿走num,或着从容器里找一个数temp ...
- CodeForces #367 div2 C
题目链接: Hard problem 题意:每个字符串可以选择反转或者不反转,给出反转每个字符串的代价,问使最少的代价使得这个字符串序列成字典序. dp[i][j] = x : 第一维是第i个字符串, ...
- CF 197 DIV2 Xenia and Bit Operations 线段树
线段树!!1A 代码如下: #include<iostream> #include<cstdio> #define lson i<<1 #define rson i ...
- CF#345 div2 A\B\C题
A题: 贪心水题,注意1,1这组数据,坑了不少人 #include <iostream> #include <cstring> using namespace std; int ...
随机推荐
- Mysql基本操作、C++Mysql简单应用、PythonMysql简单应用
MySql基本操作 -- 当指定名称的数据库不存在时创建它并且指定使用的字符集和排序方式 CREATE DATABASE IF NOT EXISTS db_name CHARACTER SET UTF ...
- jsonP 现在360浏览器竟然阻止本机 jquery load一些html js什么的
别的浏览器正常可以jquery.load本机文件,但是360浏览器不行了,缺德啊!! jsonP代码 index3.html <!DOCTYPE HTML PUBLIC "-//W3C ...
- TabWight
//修改站号void CDlgParamView::OnPushButton_2_Tab8Clicked(){ // int iSel = m_listStation.GetSelectionMark ...
- MFC线程获取主窗口句柄
CWnd* h_q = AfxGetApp()->GetMainWnd(); //获取主窗口的句柄
- 20面向对象三特征 之继承 方法重写 super
继承是:多个类有重复内容,把重复内容放到一个新类中,就可以通过extends关键词去让原来的类和新类产生继承关系,子类只能拿到父类一部分信息.通过extends关键词去指明类与类之间的关系,一个父类可 ...
- Debug:This kind of launch is configured to openthe debug perspective when it解决办法
http://blog.sina.com.cn/s/blog_7ca3aa020100zlha.html 启动tomcat时,myeclipse报错: This kind of launch is c ...
- popToViewController
看到群里有人问popToViewController的用法 就写了下了 希望能帮到有需要的人 [self.navigationController popToViewController:[self. ...
- group by两个条件
学生表: 成绩表: 问题:统计各系各门课程的平均成绩 答案: select sdept,cno,AVG(grade)avg_grade from S join SC on S.sno = SC.sno ...
- Kvm:启动报错:error: internal error: process exited while connecting to monitor: 2018-11-12T01:47:14.993371Z qemu-system-x86_64: cannot set up guest memory 'pc.ram': Cannot allocate memory
今天有台kvm挂了,物理机启动时报错 很明显看报错显示内存不足,无法分配内存,查看物理机内存使用正常,.xml修改虚机内存后启动依然报错 报错: 这时候需要看一下主机确保可以分配多少内存 sysctl ...
- 【codeforces 1109B】Sasha and One More Name
[链接] 我是链接,点我呀:) [题意] 题意 [题解] 如果这个回文串的左半部分,字母全是一样的. 那么显然不可能再分出来了,因为不管怎么分怎么排列,最后肯定都只能和原串一样. 所以无解 其他情况下 ...