SDNU1332 矩阵交换

原创 2016年05月30日 20:52:34


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

版权声明:本文为博主原创文章,未经博主允许不得转载。

SDNU 1313.Chess 找规律 矩阵快速幂

1313.Chess Description 小X有一个1*n的跳棋棋盘。今天小X要去参加比赛,他希望所有的跳棋排成他希望的队形(即在指定的格子上有棋子)来给他加油。小X只能在棋盘的第1个...
  • lmhacm
  • lmhacm
  • 2016年10月08日 14:21
  • 191

【XSY1332】【BZOJ3456】轩辕朗的城市规划 无向连通图计数 CDQ分治 FFT 多项式求逆 多项式ln

题解  设fif_i为nn个点组成的无向图个数,gig_i为nn个点组成的无向连通图个数  经过简单的推导(枚举11所在的连通块大小),有: fi=2n(n−1)2 f_i=2^{\frac{n(n...
  • ez_yww
  • ez_yww
  • 2017年09月05日 18:47
  • 158

codevs 1332 上白泽慧音

题目描述 Description 在幻想乡,上白泽慧音是以知识渊博闻名的老师。春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄。因此慧音决定换一个能够聚...

SQL Server 2005 安装失败 ERROR 0x80070534 (1332)

问题描述: ====== 在windows Server 2003 SP2上安装SQL Server 2005 SP3(Cluster)失败 处理方法: ====== 通过检查您的SQL S...

csu1332 割耳法

割耳法可以把一个多边形切成三角形:每次沿着某条对角线切下来一个三角形(称为“耳朵”),n-3次就能把一个n边形切成一个三角形。如下图,三角形{2,3,4}被割掉了。 输入一个多边形,怎样做才能让...

NDU1332(模拟)

LC-Display Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tot...

1332: addreviate--中级

Description 最近情报人员得到了一些经过加密的文章,每个单词都很长。破译人员想到先把单词化简一下,方法是把每个单词尽量取短些的前缀,但所取的前缀不能是其他单词的前缀。 这个任务现在就交给你来...

poj 3497 hdu 2333 hlg 1332 1511

Description Recently your team noticed that the computer you use to practice for programming cont...

CODEVS 1332 上白泽慧音

//top++ //强连通分量的数组要和点的数组一样大 #include #include #include using namespace std; const int maxn = 5050; ...

tarjan讲解(用codevs1332(tarjan的裸题)讲解)

主要借助这道比较裸的题来讲一下tarjan这种算法  tarjan是一种求解有向图强连通分量的线性时间的算法。(用dfs来实现) 如果两个顶点可以相互通达,则称两个顶点强连通。如果有向图G的每两个...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SDNU1332 矩阵交换
举报原因:
原因补充:

(最多只允许输入30个字)