Matrix

题目连接:

http://acm.hdu.edu.cn/showproblem.php?pid=5671

Description

There is a matrix M that has n rows and m columns (1≤n≤1000,1≤m≤1000).Then we perform q(1≤q≤100,000) operations:

1 x y: Swap row x and row y (1≤x,y≤n);

2 x y: Swap column x and column y (1≤x,y≤m);

3 x y: Add y to all elements in row x (1≤x≤n,1≤y≤10,000);

4 x y: Add y to all elements in column x (1≤x≤m,1≤y≤10,000);

Input

There are multiple test cases. The first line of input contains an integer T(1≤T≤20) indicating the number of test cases. For each test case:

The first line contains three integers n, m and q.

The following n lines describe the matrix M.(1≤Mi,j≤10,000) for all (1≤i≤n,1≤j≤m).

The following q lines contains three integers a(1≤a≤4), x and y.

Output

For each test case, output the matrix M after all q operations.

Sample Input

2

3 4 2

1 2 3 4

2 3 4 5

3 4 5 6

1 1 2

3 1 10

2 2 2

1 10

10 1

1 1 2

2 1 2

Sample Output

12 13 14 15

1 2 3 4

3 4 5 6

1 10

10 1

Hint

题意

有一个\(n\)行\(m\)列的矩阵\((1 \leq n \leq 1000 ,1 \leq m \leq 1000 )\),在这个矩阵上进行$q $ \((1 \leq q \leq 100,000)\) 个操作:

1 x y: 交换矩阵\(M\)的第\(x\)行和第\(y\)行\((1 \leq x,y \leq n)\);

2 x y: 交换矩阵\(M\)的第\(x\)列和第\(y\)列\((1 \leq x,y \leq m)\);

3 x y: 对矩阵\(M\)的第\(x\)行的每一个数加上\(y(1 \leq x \leq n,1 \leq y \leq 10,000)\);

4 x y: 对矩阵\(M\)的第\(x\)列的每一个数加上\(y(1 \leq x \leq m,1 \leq y \leq 10,000)\);

题解:

其实这些操作看着麻烦

但是我们都去打个标记就好了

他对于每一行和每一列的操作是分开的,我们对于每一行和每一列打标记就行了。

代码

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1005;
int l[maxn],r[maxn],l1[maxn],r1[maxn];
int a[maxn][maxn];
void solve()
{
int n,m,q;
scanf("%d%d%d",&n,&m,&q);
for(int i=1;i<=n;i++)l1[i]=i,l[i]=0;
for(int i=1;i<=m;i++)r1[i]=i,r[i]=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
scanf("%d",&a[i][j]);
for(int i=1;i<=q;i++)
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a==1)swap(l1[b],l1[c]);
if(a==2)swap(r1[b],r1[c]);
if(a==3)l[l1[b]]+=c;
if(a==4)r[r1[b]]+=c;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(j==m)printf("%d",a[l1[i]][r1[j]]+l[l1[i]]+r[r1[j]]);
else printf("%d ",a[l1[i]][r1[j]]+l[l1[i]]+r[r1[j]]);
}
printf("\n");
}
}
int main()
{
int t;scanf("%d",&t);
while(t--)solve();
return 0;
}

HDU 5671 Matrix 水题的更多相关文章

  1. hdu 5210 delete 水题

    Delete Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5210 D ...

  2. hdu 1251 (Trie水题)

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others)Total Submi ...

  3. HDU 5703 Desert 水题 找规律

    已知有n个单位的水,问有几种方式把这些水喝完,每天至少喝1个单位的水,而且每天喝的水的单位为整数.看上去挺复杂要跑循环,但其实上,列举几种情况之后就会发现是找规律的题了= =都是2的n-1次方,而且这 ...

  4. HDU 4493 Tutor 水题的收获。。

    题目: http://acm.hdu.edu.cn/showproblem.php?pid=4493 题意我都不好意思说,就是求12个数的平均数... 但是之所以发博客,显然有值得发的... 这个题最 ...

  5. hdu 4802 GPA 水题

    GPA Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4802 Des ...

  6. HDU 5671 Matrix

    Matrix Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Su ...

  7. hdu 4493 Tutor 水题

    Tutor Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4493 D ...

  8. hdu 5495 LCS 水题

    LCS Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5495 Descr ...

  9. hdu 4891 模拟水题

    http://acm.hdu.edu.cn/showproblem.php?pid=4891 给出一个文本,问说有多少种理解方式. 1. $$中间的,(s1+1) * (s2+1) * ...*(sn ...

随机推荐

  1. Tensorflow常用函数说明(一)

    首先最开始应该清楚一个知识,最外面的那个[ [ [ ]]]括号代表第一维,对应维度数字0,第二个对应1,多维时最后一个对应数字-1:因为后面有用到 1 矩阵变换 tf.shape(Tensor) 返回 ...

  2. TP中搜索条件

  3. oracle链接指定实例

    sqlplus /@ORACLE_SID as sysdba; 其中ORACLE_SID为具体的实例名称, 比如连接到orcl实例就执行命令: sqlplus /@orcl as sysdba; se ...

  4. Nginx源码分析--数组(转)

    原文地址:http://blog.csdn.net/marcky/article/details/5747431 备注:以下关于Nginx源码的分析基于淘宝开源项目Tengine. Nginx中对数组 ...

  5. ImageNet Classification with Deep Convolutional Neural Network(转)

    这篇论文主要讲了CNN的很多技巧,参考这位博主的笔记:http://blog.csdn.net/whiteinblue/article/details/43202399 https://blog.ac ...

  6. Linux下进程信息/proc/pid/status的深入分析

    https://blog.csdn.net/beckdon/article/details/48491909

  7. Hadoop(一)Hadoop的简介与源码编译

    一 Hadoop简介 1.1Hadoop产生的背景 1. HADOOP最早起源于Nutch.Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取.索引.查询等功能,但随着抓取网页数量的增加, ...

  8. 木块问题(UVa101)

    题目具体描述见:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_prob ...

  9. LoadRunner去除事物中的程序的执行时间

    大家在性能测试过程中,经常会用到程序处理或组织数据,以达到一定的测试目的,但是程序本身执行会消耗一些时间,这部分消耗的时间是包含在响应时间里面,此时,响应时间=正常响应时间+程序执行消耗时间.那么如何 ...

  10. 使用Nginx实现TCP反向代理

    Nginx 在1.9.0版本发布以前如果要想做到基于TCP的代理及负载均衡需要通过打名为 nginx_tcp_proxy_module 的第三方patch来实现,该模块的代码托管在github上网址: ...