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);

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

Recommand to use scanf and printf

Source
BestCoder Round #81 (div.2)
//开四个数组记录行列变换。。还有相加的值
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll 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;
}

hdu 5671(模拟)相关推荐

  1. hdu 4891 模拟

    题意:       给你一个串,问你有几种意思,有两个规则 (1) { }  答案乘以  ({}之间"|"的个数 + 1)  (2)  &&   答案乘以  (&a ...

  2. HDU 5374 模拟俄罗斯方块

    模拟俄罗斯方块游戏 完全按照俄罗斯方块的规则来做 注意规则即可: 1:每种图形开始出现时绿点均在(4,9)位置 2:先做变换,再下降一格 3:若碰到操作无法被执行的则不执行,依次进行下个操作 #inc ...

  3. 2018-12-08 acm日常 HDU - 6292(模拟找最小)

    赛题分析 著名出题人小Q每次比赛后都会写一份<赛题分析>,包含比赛概况.每题的参考算法以及一些统计数值. 对于一道题来说,小Q会统计最短的验题人代码长度(Shortest judge so ...

  4. 水果 hdu 1263 模拟

    水果 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  5. hdu 4561 模拟小题or连续最大积

    Description 小明和他的好朋友小西在玩一个游戏,由电脑随机生成一个由-2,0,2三个数组成的数组,并且约定,谁先算出这个数组中某一段连续元素的积的最大值,就算谁赢! 比如我们有如下随机数组: ...

  6. hdu 4510(模拟)

    小Q系列故事--为什么时光不能倒流 Time Limit: 300/100 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) ...

  7. [hdu 5671][BestCoder Round #81 t2] Matrix

    Matrix  Accepts: 214  Submissions: 1115  Time Limit: 3000/1500 MS (Java/Others)  Memory Limit: 1 ...

  8. HDU 5983(模拟魔方 模拟)

    题意是说给定一个 2*2 魔方的各个面的情况,问是否能转动不超过一次使得魔方复原. 思路是先在输入的时候统计一下已完成的面数,要想以最多一次的转动使得魔方复原,那么已完成的面数只能是 2 面或者 6 ...

  9. HDU 4541 模拟

    第一开始打印10的100次方的时候弄成了1000个0.....,害得我搞了半天 #include<stdio.h> #include<stdlib.h> #include< ...

最新文章

  1. 标准爬虫初探,来自Python之父的大餐!
  2. 会计转行算法之路(一)会计转程序员
  3. SOPC第二课 新手易犯错误和小灯闪烁SOPC代码以及固化讲解
  4. 第五章 Mininet常用命令参数介绍
  5. 2019\Province_C_C++_B\试题A-组队
  6. 关于 ASP.NET 内存缓存你需要知道的 10 点
  7. linux发送邮件的功能总结
  8. 归并排序 java_马士兵说之归并排序
  9. 矩阵特征值的用matlab,[急求]谁可以用matlab帮我运行求矩阵特征值的命令???...
  10. nexus3作为docker私服的使用
  11. 北邮计算机网络实践第四次实验,北邮计算机网络技术实践实验四实验报告.doc...
  12. 超参数的选择与交叉验证
  13. 华为电脑可以升级鸿蒙系统吗,华为电脑现在是鸿蒙系统吗_华为p40升级鸿蒙系统...
  14. 【SwiftUI模块】0033、SwiftUI创建用户双击帖子时的心形动画
  15. 1 语言模型和词向量
  16. 免费高清视频素材下载网站
  17. python玩王者荣耀皮肤_爬取王者荣耀皮肤图片
  18. OWOD训练运行教程
  19. Android电视清理系统应用,智能电视删除自带软件,这个方法最简单!
  20. myos1 大学生利用C++构建一个完整的操作系统打印helloworld

热门文章

  1. 重写webFlux中的webFilter,随意跳转到指定的过滤器,其实很简单
  2. objc_msgSend流程分析之缓存查找
  3. FCN网络的训练——以SIFT-Flow 数据集为例(转)
  4. 企业引导页自适应HTML源码
  5. 拓野机器人:机器人浮动去毛刺主轴应用在哪些领域
  6. 数据通信技术_数据通信相关汇总
  7. 微机原理与计算机接口技术试卷,微机原理及接口技术期末试卷含答案 好
  8. python 非线性规划
  9. 【论文阅读】计算机视觉经典论文合辑
  10. python压缩视频文件_python实现视频压缩功能