博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 5671 Matrix
阅读量:5221 次
发布时间:2019-06-14

本文共 2193 字,大约阅读时间需要 7 分钟。

Matrix

Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)

Total Submission(s): 502    Accepted Submission(s): 215

Problem Description
There is a matrix
that has n rows and m columns (1n1000,1m1000).Then we perform q(1q100,000) operations:
1 x y: Swap row x and row y (1x,yn) ;
2 x y: Swap column x and column y (1x,ym) ;
3 x y: Add y to all elements in row x (1xn,1y10,000) ;
4 x y: Add y to all elements in column x (1xm,1y10,000) ;
 
Input
There are multiple test cases. The first line of input contains an integer
T(1T20) 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.(1M,i,j10,000) for all (1in,1jm) .
The following q lines contains three integers a(1a4) , 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
Recommand to use scanf and printf
 
Recommend
wange2014   
题目大意:有一个n行m列的矩阵,在这个矩阵上进行q个操作,输出经过所有q个操作以后的矩阵M
思路:用4个数组,对于交换行、交换列的操作,分别记录当前状态下每一行、每一列是原始数组的哪一行、哪一列即可。
对每一行、每一列加一个数的操作,也可以两个数组分别记录。
注意当交换行、列的同时,也要交换增量数组。
输出时通过索引找到原矩阵中的值,再加上行、列的增量。
#include 
#include
using namespace std;int h[1010],l[1010], zh[1010], zl[1010];int a[1010][1010];int main(){ int T, n, m, q, i, j, c, x, y, t; cin>>T; while(T--) { memset(zh,0,sizeof(zh)); memset(zl,0,sizeof(zl)); for(i=1;i<=1005;i++) h[i]=l[i]=i; scanf("%d%d%d", &n, &m, &q); for(i=1;i<=n;i++) for(j=1;j<=m;j++) scanf("%d", &a[i][j]); while(q--) { scanf("%d%d%d", &c, &x, &y); if(c==1) {t=h[x];h[x]=h[y];h[y]=t;} else if(c==2) {t=l[x];l[x]=l[y];l[y]=t;} else if(c==3) zh[h[x]] += y; else if(c==4) zl[l[x]] += y; } for(i=1;i<=n;i++) { for(j=1;j<=m;j++) if(j==1) printf("%d", a[h[i]][l[j]]+zh[h[i]]+zl[l[j]]); else printf(" %d", a[h[i]][l[j]]+zh[h[i]]+zl[l[j]]); printf("\n"); } } return 0;}

 

 

转载于:https://www.cnblogs.com/Noevon/p/5426009.html

你可能感兴趣的文章
数据库锁机制及乐观锁,悲观锁的并发控制
查看>>
图像处理中双线性插值
查看>>
RobHess的SIFT代码解析之RANSAC
查看>>
03 线程池
查看>>
201771010125王瑜《面向对象程序设计(Java)》第十三周学习总结
查看>>
手机验证码执行流程
查看>>
python 基础 ----- 变量
查看>>
设计模式课程 设计模式精讲 2-2 UML类图讲解
查看>>
Silverlight 的菜单控件。(不是 Toolkit的)
查看>>
:hover 鼠标同时触发两个元素变化
查看>>
go语言学习十三 - 相等性
查看>>
Idea 提交代码到码云(提交到github也大同小异)
查看>>
c#连接excel2007未安装ISAM解决
查看>>
Mono 异步加载数据更新主线程
查看>>
初识lua
查看>>
我是插件狂人,jDuang,jValidator,jModal,jGallery
查看>>
张季跃 201771010139《面向对象程序设计(java)》第四周学习总结
查看>>
如何解除循环引用
查看>>
android中fragment的使用及与activity之间的通信
查看>>
字典【Tire 模板】
查看>>