CodeForces 669C
2016-04-28 16:29
225 查看
链接:http://codeforces.com/problemset/problem/669/C
http://www.cnblogs.com/Ash-ly/p/5443155.html
[b]题意:[/b]
给你一个N*M的矩阵,有三种操作:
1 r 代表把第r行整体左移一位,第一个到最后一个位置.
2 l 代表把第l列整体上移一位,第一个到最底下的位置.
3 x y v 代表此刻第 x 行第 y 列的值为 v.
给你一系列的操作,让你给出满足要求的原始矩阵,如果有多个答案,其中任意一个都可以.
[b]思路:[/b]
既然一个矩阵 Q 经过一系列的操作 p1, p2, p3, p4, ..., pn 变成了 Z,那么 Z 经过 pn, ..., p4, p3, p2, p1 也可以恢复到 Q,那么这道题就解决了,只不过对于命令 1 和 2 需要把方向反过来,对于命令 3,直接对相应的位置进行赋值就好了.
[b]代码:[/b]
http://www.cnblogs.com/Ash-ly/p/5443155.html
[b]题意:[/b]
给你一个N*M的矩阵,有三种操作:
1 r 代表把第r行整体左移一位,第一个到最后一个位置.
2 l 代表把第l列整体上移一位,第一个到最底下的位置.
3 x y v 代表此刻第 x 行第 y 列的值为 v.
给你一系列的操作,让你给出满足要求的原始矩阵,如果有多个答案,其中任意一个都可以.
[b]思路:[/b]
既然一个矩阵 Q 经过一系列的操作 p1, p2, p3, p4, ..., pn 变成了 Z,那么 Z 经过 pn, ..., p4, p3, p2, p1 也可以恢复到 Q,那么这道题就解决了,只不过对于命令 1 和 2 需要把方向反过来,对于命令 3,直接对相应的位置进行赋值就好了.
[b]代码:[/b]
#include <bits/stdc++.h> using namespace std; const int MAXN = 100; const int MAXQ = 10000; int arr[MAXN + 7][MAXN + 7]; int n, m, q; struct Order { int ord; int aa; int bb; int cc; }od[MAXQ + 7]; void righmv(int low) { for(int i = m + 1; i >= 2; --i) arr[low][i] = arr[low][i - 1]; arr[low][1] = arr[low][m + 1]; } void downmv(int line) { for(int i = n + 1; i >= 2; --i) arr[i][line] = arr[i - 1][line]; arr[1][line] = arr[n + 1][line]; } int main() { // freopen("input.txt", "r", stdin); scanf("%d%d%d", &n, &m, &q); memset(&od, 0, sizeof(Order)); for(int i = 0; i < q; i++) { scanf("%d", &od[i].ord); if(od[i].ord != 3) scanf("%d", &od[i].aa); else scanf("%d%d%d", &od[i].aa, &od[i].bb, &od[i].cc); } for(int i = q - 1; i >= 0; --i) { if(od[i].ord == 1) righmv(od[i].aa); else if(od[i].ord == 2) downmv(od[i].aa); else arr[od[i].aa][od[i].bb] = od[i].cc; } for(int i = 1; i <= n; i++) { for(int j = 1; j <= m; j++) printf(j == 1 ? "%d":" %d", arr[i][j]); printf("\n"); } return 0; }
相关文章推荐
- CSS+DIV入门
- 遇到"不能执行已释放的 Script 的代码" 的问题和解决方法
- Android消息机制:Looper,MessageQueue,Message与handler
- Java下兼容linux和windows文件路径的间隔符的写法
- maven安装错误履历
- springmvc+redis项目搭建
- RCNN学习笔记(9):OverFeat:Integrated Recognition, Localization and Detection using Convolutional Networks
- 关于webView
- swift - 为类和结构体增加下标(subscript)操作
- JAVA集合框架之List、Map、Set之间的选择~小案例分析
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- 图像显著性论文(四)--(六)
- 常用人脸库
- GreenDao框架使用教程
- java 实现Excel数据导入数据库
- oracle添加字段 与 db2 添加字段
- 那些需要留心的非流量数据,读懂它才是关键
- Android开发日常随笔:WeakReference与SoftReference
- 格式化日期返回今天,昨天,前天,超过返回日期
- 【MySql-多表联合查询分页存储过程】