#include <iostream>
using namespace std; int n, m, q;
struct node {
int v; // 节点权值
int r; // 右侧节点在arr[]中的位置
int d; // 下侧节点在arr[]中的位置
node() {v = r = d = -;} // 初始化
} arr[ * ]; // 利用矩阵行列位置确定在arr[]中的位置
int locate(int x, int y)
{
return x * (m + ) + y;
} int main()
{
ios::sync_with_stdio(false);
cin.tie(); cin >> n >> m >> q; // 输入权值
for (int i = ; i <= n; i++)
for (int j = ; j <= m; j++)
cin >> arr[locate(i, j)].v; // 再次遍历确定节点的右侧和下侧 注意是从0开始!
for (int i = ; i <= n; i++) {
for (int j = ; j <= m; j++) {
arr[locate(i, j)].r = locate(i, j + );
arr[locate(i, j)].d = locate(i + , j);
}
} // 询问
int x1, y1, x2, y2, h, w;
while (q--) {
cin >> x1 >> y1 >> x2 >> y2 >> h >> w;
// 找到两个子矩阵左上角的左上角的位置
int p1 = , p2 = ;
for (int i = ; i < x1; i++)
p1 = arr[p1].d;
for (int i = ; i < y1; i++)
p1 = arr[p1].r;
for (int i = ; i < x2; i++)
p2 = arr[p2].d;
for (int i = ; i < y2; i++)
p2 = arr[p2].r; // 改变子矩阵边界的d、r
int r1 = p1, r2 = p2;
for (int i = ; i <= h; i++) {
r1 = arr[r1].d;
r2 = arr[r2].d;
swap(arr[r1].r, arr[r2].r);
}
for (int i = ; i <= w; i++) {
r1 = arr[r1].r;
r2 = arr[r2].r;
swap(arr[r1].d, arr[r2].d);
}
r1 = p1;
r2 = p2;
for (int i = ; i <= w; i++) {
r1 = arr[r1].r;
r2 = arr[r2].r;
swap(arr[r1].d, arr[r2].d);
}
for (int i = ; i <= h; i++) {
r1 = arr[r1].d;
r2 = arr[r2].d;
swap(arr[r1].r, arr[r2].r);
}
} // 输出改变后的矩阵
int p = ;
for (int i = ; i <= n; i++) {
bool flag = true;
p = arr[p].d;
int k = p;
for (int j = ; j <= m; j++) {
k = arr[k].r;
if (flag) {
cout << arr[k].v;
flag = false;
}
else cout << ' ' << arr[k].v;
}
cout << endl;
}
return ;
}

最新文章

  1. Apache Spark源码走读之24 -- Sort-based Shuffle的设计与实现
  2. bootstrap 列表 表格 表单 复选 单选 多选 输入框组
  3. 第二百一十九天 how can I 坚持
  4. iOS 通览(一) - 技巧、特性及规范
  5. Android 中LocalBroadcastManager的使用方式
  6. mongodb时间戳转换成格式化时间戳
  7. chrome使用技巧(转)good
  8. As input tri-stated
  9. A - LCM Challenge
  10. 关于Spring事务的原理,以及在事务内开启线程,连接池耗尽问题.
  11. Beta Scrum博客集
  12. Python第二十六天 python装饰器
  13. 51Nod1634 刚体图 动态规划 容斥原理 排列组合
  14. 关于高并发下kafka producer send异步发送耗时问题的分析
  15. ssh 多条命令执行
  16. Vs2008应用程序升级为vs2012
  17. Redis偶发连接失败案例分析
  18. Noip前的大抱佛脚----考场配置
  19. 设置Loadrunner负载机临时文件目录
  20. jquery 仿windows10菜单效果下载

热门文章

  1. 如何在Less中使用使用calc
  2. Apache Hive 建表操作的简单描述
  3. 如何给网页标题栏上添加图标(favicon.ico)(转)
  4. GROUP BY ROLLUP和CUBE 用法
  5. python if __name__ == &#39;__main__&#39; 作用
  6. My First JS Page
  7. mac安装nose,command not found:nosetests
  8. Requests接口测试(五)
  9. 关于AJAX与JSON的杂记
  10. Ubuntu下添加Python环境变量