zoukankan      html  css  js  c++  java
  • XidianOJ 1129 an old problem

    题目描述

    给定一个n*m的矩阵,要求支持下面的操作:
    0 x y:交换第x行与第y行
    1 x y:交换第x列与第y列

    输入

    多组数据。对于每组测试数据,第一行包含三个数n,m,k(1<=n,m<=1000;1<=k<=100000),分别表示行数,列数,操作数。
    接下来n行,每行m个整数,表示初始的矩阵,矩阵中每个数小于10^9。
    接下来k行每行一个操作,格式如题目所述。

    输出

    对于每组数据,输出完成所有操作后的矩阵。

    --正文
    跟又是苹果其实是一个问题
    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    
    int nowx[1001],nowy[1001];
    int n,m,k;
    int matrix[1001][1001];
    int main(){
        while (scanf("%d %d %d",&n,&m,&k) != EOF){
            int i,j;
            for (i=1;i<=n;i++){
                for (j=1;j<=m;j++){
                    scanf("%d",&matrix[i][j]);
                }
            }
            for (i=1;i<=n;i++) nowx[i] = i;
            for (j=1;j<=m;j++) nowy[j] = j;
            
            for (i=1;i<=k;i++){
                int order,a,temp,b;
                scanf("%d %d %d",&order,&a,&b);
                if (order == 0){
                    temp = nowx[a];
                    nowx[a] = nowx[b];
                    nowx[b] = temp;
                }
                else {
                    temp = nowy[a];
                    nowy[a] = nowy[b];
                    nowy[b] = temp;
                }
            } 
            
            for (i=1;i<=n;i++){
                for (j=1;j<=m;j++){
                    if (j == 1) 
                    printf("%d",matrix[nowx[i]][nowy[j]]);
                    else
                    printf(" %d",matrix[nowx[i]][nowy[j]]);
                }
                printf("
    ");
            }
        }
        return 0;
    }
  • 相关阅读:
    查看硬件的一些命令
    InfluxDB部署和使用
    利用mysql时间函数监控表中有没有当天数据
    js基础_for循环(学习笔记)
    JS基础_运算符的优先级
    JS基础_相等运算符
    Apache安装与卸载(win10系统测试)
    MySQL --添加环境变量教程
    MySQL安装教程及遇到的错误提示
    如何完全卸载MySQL
  • 原文地址:https://www.cnblogs.com/ToTOrz/p/6086538.html
Copyright © 2011-2022 走看看