链接:http://codeforces.com/problemset/problem/669/C

http://www.cnblogs.com/Ash-ly/p/5443155.html

题意:

  给你一个N*M的矩阵,有三种操作:

  1 r 代表把第r行整体左移一位,第一个到最后一个位置.

  2 l  代表把第l列整体上移一位,第一个到最底下的位置.

  3 x y v 代表此刻第 x 行第 y 列的值为 v.

  给你一系列的操作,让你给出满足要求的原始矩阵,如果有多个答案,其中任意一个都可以.

思路:

  既然一个矩阵 Q 经过一系列的操作 p1, p2, p3, p4, ..., pn 变成了 Z,那么 Z 经过 pn, ..., p4, p3, p2, p1 也可以恢复到 Q,那么这道题就解决了,只不过对于命令 1 和 2 需要把方向反过来,对于命令 3,直接对相应的位置进行赋值就好了.

代码:

 #include <bits/stdc++.h>
using namespace std; const int MAXN = ;
const int MAXQ = ;
int arr[MAXN + ][MAXN + ];
int n, m, q; struct Order
{
int ord;
int aa;
int bb;
int cc;
}od[MAXQ + ]; void righmv(int low)
{
for(int i = m + ; i >= ; --i)
arr[low][i] = arr[low][i - ];
arr[low][] = arr[low][m + ];
} void downmv(int line)
{
for(int i = n + ; i >= ; --i)
arr[i][line] = arr[i - ][line];
arr[][line] = arr[n + ][line];
} int main()
{
// freopen("input.txt", "r", stdin);
scanf("%d%d%d", &n, &m, &q);
memset(&od, , sizeof(Order));
for(int i = ; i < q; i++)
{
scanf("%d", &od[i].ord);
if(od[i].ord != ) scanf("%d", &od[i].aa);
else scanf("%d%d%d", &od[i].aa, &od[i].bb, &od[i].cc);
}
for(int i = q - ; i >= ; --i)
{
if(od[i].ord == )
righmv(od[i].aa);
else if(od[i].ord == )
downmv(od[i].aa);
else
arr[od[i].aa][od[i].bb] = od[i].cc;
}
for(int i = ; i <= n; i++)
{
for(int j = ; j <= m; j++)
printf(j == ? "%d":" %d", arr[i][j]);
printf("\n");
}
return ;
}

CodeForces 669C的更多相关文章

  1. CodeForces 669C Little Artem and Matrix GNU

    模拟. 把操作记录一下,倒着复原回去. #pragma comment(linker, "/STACK:1024000000,1024000000") #include<cs ...

  2. codeforces 669C C. Little Artem and Matrix(水题)

    题目链接: C. Little Artem and Matrix time limit per test 2 seconds memory limit per test 256 megabytes i ...

  3. python爬虫学习(5) —— 扒一下codeforces题面

    上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...

  4. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

  5. 【Codeforces 738C】Road to Cinema

    http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...

  6. 【Codeforces 738A】Interview with Oleg

    http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...

  7. CodeForces - 662A Gambling Nim

    http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...

  8. CodeForces - 274B Zero Tree

    http://codeforces.com/problemset/problem/274/B 题目大意: 给定你一颗树,每个点上有权值. 现在你每次取出这颗树的一颗子树(即点集和边集均是原图的子集的连 ...

  9. CodeForces - 261B Maxim and Restaurant

    http://codeforces.com/problemset/problem/261/B 题目大意:给定n个数a1-an(n<=50,ai<=50),随机打乱后,记Si=a1+a2+a ...

随机推荐

  1. 【BZOJ 1930】 [Shoi2003]pacman 吃豆豆 最大费用最大流

    如果你知道他是网络流的话你就很快会想到一个最大费用最大流的模型,然后你发现可能T,然而你发现你只用增广两次,然后你就开心的打了出来,然后发现被稠密图里spfa的丧病时间复杂度坑了,还是会T.于是我就开 ...

  2. BZOJ2337: [HNOI2011]XOR和路径 期望概率dp 高斯

    这个题让我认识到我以往对于图上期望概率的认识是不完整的,我之前只知道正着退还硬生生的AC做过的所有图,那么现在让我来说一下逆退,一般来说对于概率性的东西都只是正推,因为有了他爸爸才有了他,而对于期望性 ...

  3. 使用XTU降低CPU功耗,自动执行不失效

    INTEL出品的XTU可以用来做软超频操作,给CPU/GPU加电压超频,也可以通过降低CPU/GPU电压来减少功耗. 以前用XTU设置好了之后,过一段时间就自动失效了,最近失效的频率突然很高,于是找了 ...

  4. [洛谷P2016] 战略游戏 (树形dp)

    战略游戏 题目描述 Bob喜欢玩电脑游戏,特别是战略游戏.但是他经常无法找到快速玩过游戏的办法.现在他有个问题. 他要建立一个古城堡,城堡中的路形成一棵树.他要在这棵树的结点上放置最少数目的士兵,使得 ...

  5. springboot中 后端跨域的实现配置

    在springboot的启动文件中,添加此内容,可以允许跨域

  6. egrep对于conf文件中去掉#注释,排除无用项

    [root@localhost conf]# egrep -v "#|^$" nginx.conf.default > nginx.conf dd

  7. GTK+与MFC不完全对比

    转载自:http://tech.ddvip.com/2007-11/119640973738229.html 1. 两者都是基于面向对象设计的.尽管MFC是用C++写的,而GTK+是用C写的,但思想都 ...

  8. spring和Quartz的定时功能

    一:前沿 最近在做一个定时的功能,就是在一定时间内查询订单,然后告诉用户未付款,已付款等消息通知,而且要做集群的功能,这个集群的功能是指,我部署两套代码,其中一个定时的功能在运行,另外一个就不要运行. ...

  9. 网络(bzoj 4538)

    Description 一个简单的网络系统可以被描述成一棵无根树.每个节点为一个服务器.连接服务器与服务器的数据线则看做一条树边.两个服务器进行数据的交互时,数据会经过连接这两个服务器的路径上的所有服 ...

  10. 【bzoj1096-仓库建设】斜率优化

    dsy1096: [ZJOI2007]仓库建设 [问题描述] L公司有N个工厂,由高到底分布在一座山上.如图所示,工厂1在山顶,工厂N在山脚. 由于这座山处于高原内陆地区(干燥少雨),L公司一般把产品 ...