您的位置:首页 > 其它

SDNU1332 矩阵交换

2016-05-30 20:52 351 查看
1)只交换行或列的标号。

#include <iostream>
#include <stdio.h>
#include <string>
#include <string.h>

using namespace std;
//int x[110][110];
//int y[110][110];
int x_bian[110];
int y_bian[110];
int matrix[110][110];
struct Node{
int one,sec;
string name;
}node[20010];
int main()
{
int n,k;
cin>>n;
cin>>k;
int g;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>matrix[i][j];
//x[i][j]=matrix[i][j];
}
}
//cout<<"1111"<<endl;
for(int i=1;i<=n;i++){
x_bian[i]=i;
y_bian[i]=i;
}
string name;
int xx;
int yy;
int endd=-1;
for(int i=0;i<k;i++){
cin>>node[i].name>>node[i].one>>node[i].sec;
if(node[i].name=="Ask") endd=i;
}
for(int i=0;i<k;i++){
if(node[i].name=="Ask"){
cout<<matrix[x_bian[node[i].one]][y_bian[node[i].sec]];
if(i!=endd){
cout<<endl;
}
}
else if(node[i].name=="swapR"){
int x_temp=x_bian[node[i].one];
int x_temp2=x_bian[node[i].sec];
x_bian[node[i].one]=x_temp2;
x_bian[node[i].sec]=x_temp;
}
else if(node[i].name=="swapC"){
int y_temp=y_bian[node[i].one];
int y_temp2=y_bian[node[i].sec];
y_bian[node[i].one]=y_temp2;
y_bian[node[i].sec]=y_temp;
}
//if(i==k-1){
//cout<<endl;
//}
}

return 0;
}


2)

Description

给定一个N*N的矩阵,支持3种操作:

swapR a b:交换第a行和第b行的所有元素;

swapC a b:交换第a列和第b列的所有元素;

Ask a b:询问第a行第b列元素的值

Input

第一行N,K,为矩阵大小和操作个数

接下来N行每行N个正整数代表矩阵元素

接下来K行每行一个操作,格式如题目所述。

1 <= N <= 100; 1 <= K <= 20000;

Output

对于每个询问,输出一行作为答案。

Sample Input

2 30 12 3Ask 2 2swapR 1 2Ask 1 1


Sample Output

32
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: