HDU 5671 Matrix
来源:互联网 发布:淘宝面单打印软件 编辑:程序博客网 时间:2024/05/18 02:30
这题直接用枚举是要TLE的,关键步骤
是要用4个数组来存下变化的行数,列数,行数增加的数与列数
增加的数,最后输出是就通过这个4个数组作导索来输出数据
还有一点就是交换行,列数 数组时要记得交换行,列增加数 数组
时间复杂度为:O(q+m*n)
代码如下:
#include <algorithm> #include <iostream> #include <cstdlib> #include <cstring> #include <string>#include <cstdio> #include <climits>#include <cmath> using namespace std;int data[1005][1005];int exha[1005],exli[1005];int hajia[1005],lijia[1005];int main(){#ifdef DID freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout);#endif int t; scanf("%d",&t); while(t--){ memset(data,0,sizeof(data));memset(exha,0,sizeof(exha));memset(exli,0,sizeof(exli));memset(hajia,0,sizeof(hajia));memset(lijia,0,sizeof(lijia)); int n,m,q,num,x,y; scanf("%d%d%d",&n,&m,&q); for(int i=0;i<n;i++){exha[i]=i; for(int j=0;j<m;j++) scanf("%d",&data[i][j]);} for(int j=0;j<m;j++) exli[j]=j; for(int i=0;i<q;i++){ scanf("%d%d%d",&num,&x,&y); if(num==1){ swap(exha[x-1],exha[y-1]); //记录交换的行数swap(hajia[x-1],hajia[y-1]); //交换行增加数的数组} else if(num==2){ swap(exli[x-1],exli[y-1]); //与上同理swap(lijia[x-1],lijia[y-1]);} else if(num==3) hajia[x-1]+=y; else lijia[x-1]+=y; } for(int i=0;i<n;i++) for(int j=0;j<m;j++){ int x1=exha[i],y1=exli[j]; //x1为对应原数组的行,y1对应原数组的列 int addha=hajia[i],addli=lijia[j]; //对应行,列增加数 int num=data[x1][y1]+addha+addli; //输出数据 if(j!=m-1) printf("%d ",num); else printf("%d\n",num); } } return 0;}
1 0
- HDU 5671 Matrix
- hdu 5671 Matrix(模拟)
- HDU 5671 Matrix
- HDU 5671 Matrix
- HDU 5671:Matrix【技巧】
- HDU 5671 Matrix
- hdu 5671 Matrix【思维】
- HDU 5671 Matrix
- hdu 5671 Matrix
- HDU-5671 Matrix
- hdu 5671 (Matrix)
- hdu 5671 Matrix
- HDU 5671 Matrix
- HDU 5671 Matrix (矩阵操作)
- 【HDU 杭电 5671 Matrix】
- Matrix HDU
- hdu 5671 Matrix(矩阵行列交换)
- [hdu 5671][BestCoder Round #81 t2] Matrix
- HTTP 常用状态码
- 解决点击ProgressDialog之外的地方Dialog消失的问题
- python小练习:Opencv中将图片转为字符画
- java简单MD5加密
- android USB触摸屏是滑鼠模状态问题
- HDU 5671 Matrix
- android Http通信(访问web server)
- set集合容器
- 开始写Java项目
- 彻底解决Android 应用方法数不能超过65536的问题
- 4.重建二叉树(做第二遍时感觉仍有有难度,第三次做还是要看一下思路才行)
- 如何学习算法
- 开发工具:GitHub的使用
- C++委托实现(函数指针,function+bind,委托模式)