马蹄有一题
题目描述:给定一个二维数组,给你q次操作,交换x行和y行所有的元素,输出最后的矩阵
思路:不可能全部一个一个交换,肯定tle,设置一个idx数组,每次交换索引,最后输出g[idx[i]][j]即可
#include<bits/stdc++.h>
using namespace std;
int n,m,q,x,y;
int main(){
cin>>n>>m;
vector<vector<int>>g(n,vector<int>(m));//n行m列
vector<int>idx(n);
for(int i=0;i<n;i++){
idx[i]=i;
for(int j=0;j<m;j++)
cin>>g[i][j];
}
cin>>q;
while(q--){
cin>>x>>y;
swap(idx[x-1],idx[y-1]);
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cout<<g[idx[i]][j]<<" ";
}
cout<<"\n";
}
return 0;
}