Codeforecs 705C Working Routine 模拟(链表)
来源:互联网 发布:中国第一程序员 编辑:程序博客网 时间:2024/05/16 17:40
题意:n*m矩阵,q次操作,每次给出两个矩形的左上角坐标,及宽度和高度.交换这两个不相交的矩形.
n,m<=1e3,q<=1e4,输出最后的矩形.
题意限制的很紧,一条直线上不会有属于不同矩形的格子.
n,m<=1e3,q<=1e4,输出最后的矩形.
题意限制的很紧,一条直线上不会有属于不同矩形的格子.
每个格子存其右边和下面元素,交换两个子矩形不改变其内部指针,变得只有其四周一圈的指针O(q*(n+m))
#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N=2e3+20;struct node{int val;node *right,*down;}a[N][N];int main(){int n,m,q;while(cin>>n>>m>>q){for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)scanf("%d",&a[i][j].val);for(int i=0;i<=n;i++){for(int j=0;j<=m;j++){a[i][j].down=&a[i+1][j];a[i][j].right=&a[i][j+1];}}int x,y,c,d,h,w;node *t1,*t2,*p1,*p2;while(q--){scanf("%d%d%d%d%d%d",&x,&y,&c,&d,&h,&w);p1=&a[0][0],p2=&a[0][0];for(int i=0;i<x-1;i++)p1=p1->down;for(int i=0;i<y-1;i++)p1=p1->right;for(int i=0;i<c-1;i++)p2=p2->down;for(int i=0;i<d-1;i++)p2=p2->right;t1=p1,t2=p2;for(int i=0;i<w;i++){t1=t1->right;t2=t2->right;swap(t1->down,t2->down);}for(int i=0;i<h;i++){t1=t1->down;t2=t2->down;swap(t1->right,t2->right);}t1=p1;t2=p2;for(int i=0;i<h;i++){t1=t1->down;t2=t2->down;swap(t1->right,t2->right);}for(int i=0;i<w;i++){t1=t1->right;t2=t2->right;swap(t1->down,t2->down);}}for(int i=1;i<=n;i++){t1=&a[i][0];for(int j=1;j<=m;j++){t1=t1->right;printf("%d ",t1->val);}printf("\n");}}return 0;}
阅读全文
0 0
- Codeforecs 705C Working Routine 模拟(链表)
- 【链表】【模拟】Codeforces 706E Working routine
- Codeforces Working routine (链表)
- Codeforces 706E Working routine (模拟链表)
- CF367 E - Working routine
- Codeforces 706E Working routine
- 【CF 706E】Working routine
- CF 706E Working routine
- c routine library
- zoj 长沙 Bizarre Routine 模拟
- Codeforces Round #367 (Div. 2)E. Working routine
- CodeForces 367E Working routine 十字链表
- cf#367E-Working routine 十字链表
- Codeforces Round #367 (Div. 2) E. Working routine
- Codeforecs 493C Vasya and Basketball 贪心+二分
- Codeforecs 785C Anton and Fairy Tale 数学+二分
- Codeforecs 465C No To Palindromes! 构造+思维
- Codeforecs 424C Magic Formulas 规律+前缀和
- 读
- @webservlet注解报红
- java8新特性-Lombda语法
- hub工作原理
- HDU
- Codeforecs 705C Working Routine 模拟(链表)
- flume性能调优
- GestureDetector使用方法
- 排序算法总结
- CodeForces 371D Vessels
- I'm bored with life (Codeforces 822A)
- 面向对象编程概念
- 编写好代码的10条戒律
- linux01-常用命令、网络、mysql、yum