hdu 5671(模拟)
来源:互联网 发布:施工图设计优化 编辑:程序博客网 时间:2024/05/16 06:09
Matrix
Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 768 Accepted Submission(s): 323
Problem 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) ;
1 x y: Swap row x and row y
2 x y: Swap column x and column y
3 x y: Add y to all elements in row x
4 x y: Add y to all elements in column x
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 integersn , m and q .
The followingn lines describe the matrix M.(1≤Mi,j≤10,000) for all (1≤i≤n,1≤j≤m) .
The followingq lines contains three integers a(1≤a≤4) , x and y .
The first line contains three integers
The following
The following
Output
For each test case, output the matrix M after all q operations.
Sample Input
23 4 21 2 3 42 3 4 53 4 5 61 1 23 1 102 2 21 1010 11 1 22 1 2
Sample Output
12 13 14 151 2 3 43 4 5 61 1010 1HintRecommand to use scanf and printf
Source
BestCoder Round #81 (div.2)
//开四个数组记录行列变换。。还有相加的值
#include <bits/stdc++.h>using namespace std;#define ll long longll ma[1005][1005];ll row[1005],col[1005],sumr[1005],sumc[1005];int main(){ int t; scanf("%d",&t); while(t--) { ll n,m,q; scanf("%lld%lld%lld",&n,&m,&q); memset(sumr,0,sizeof(sumr)); memset(sumc,0,sizeof(sumc)); for(int i=1;i<=n;i++) { row[i]=i; for(int k=1;k<=m;k++) { scanf("%lld",&ma[i][k]); col[k]=k; } } while(q--) { ll type,x,y; scanf("%lld%lld%lld",&type,&x,&y); if(type==1) { swap(row[x],row[y]); swap(sumr[x],sumr[y]); } else if(type==2) { swap(col[x],col[y]); swap(sumc[x],sumc[y]); } else if(type==3) { sumr[x]+=y; } else { sumc[x]+=y; } } for(int i=1;i<=n;i++) { for(int k=1;k<=m-1;k++) { ll t=ma[row[i]][col[k]]+sumr[i]+sumc[k]; printf("%lld ",t); } printf("%lld\n",ma[row[i]][col[m]]+sumr[i]+sumc[m]); } } return 0;}
0 0
- hdu 5671(模拟)
- hdu 5671 Matrix(模拟)
- hdu 3347(模拟)
- hdu 3344(模拟)
- hdu 2142 (模拟,,,)
- hdu 1034 (模拟)
- hdu 2526(模拟)
- hdu 2525(模拟)
- HDU EBCDIC(模拟)
- hdu 1571(模拟)
- HDU 5491(模拟)
- HDU 5499(模拟)
- HDU 1266 (模拟)
- hdu 1029(模拟)
- HDU 5547 (模拟)
- HDU 1042 N!(模拟)
- hdu 2142 disney(模拟)
- hdu 4255(模拟+bfs)
- IaaS, PaaS和SaaS公司都做些什么
- JAVA BigDecimal 小数处理
- hdu 5670
- quartz定时任务时间设置
- JNI:基本数据类型转换
- hdu 5671(模拟)
- 做Android整一年
- Eclipse查看和修改web项目部署位置
- poj-3080
- paho java log输出
- HTML 中 URL 传值。
- Android源码浅析(一)——VMware Workstation Pro和Ubuntu Kylin 16.04 LTS安装配置
- Java线程之1.5版新特性多生产者多消费者(四)
- iOS开发小技巧[003]:将约束值设置为一个带小数点的数