zoukankan      html  css  js  c++  java
  • CodeForces 222B Cosmic Tables

    Cosmic Tables
    Time Limit:3000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u

    Description

    The Free Meteor Association (FMA) has got a problem: as meteors are moving, the Universal Cosmic Descriptive Humorous Program (UCDHP) needs to add a special module that would analyze this movement.

    UCDHP stores some secret information about meteors as an n × m table with integers in its cells. The order of meteors in the Universe is changing. That's why the main UCDHP module receives the following queries:

    • The query to swap two table rows;
    • The query to swap two table columns;
    • The query to obtain a secret number in a particular table cell.

    As the main UCDHP module is critical, writing the functional of working with the table has been commissioned to you.

    Input

    The first line contains three space-separated integers nm and k (1 ≤ n, m ≤ 1000, 1 ≤ k ≤ 500000) — the number of table rows, columns and the number of queries, correspondingly.

    Next n lines contain m space-separated numbers each — the initial state of the table. Each number p in the table is an integer and satisfies the inequality 0 ≤ p ≤ 106.

    Next k lines contain queries in the format "si xi yi", where si is one of the characters "с", "r" or "g", and xiyi are two integers.

    • If si = "c", then the current query is the query to swap columns with indexes xi and yi (1 ≤ x, y ≤ m, x ≠ y);
    • If si = "r", then the current query is the query to swap rows with indexes xi and yi (1 ≤ x, y ≤ n, x ≠ y);
    • If si = "g", then the current query is the query to obtain the number that located in the xi-th row and in the yi-th column (1 ≤ x ≤ n, 1 ≤ y ≤ m).

    The table rows are considered to be indexed from top to bottom from 1 to n, and the table columns — from left to right from 1 to m.

    Output

    For each query to obtain a number (si = "g") print the required number. Print the answers to the queries in the order of the queries in the input.

    Sample Input

    		
    input
    3 3 5
    1 2 3
    4 5 6
    7 8 9
    g 3 2
    r 3 2
    c 2 3
    g 2 2
    g 3 2
    
    output
    8
    9
    6
    
    input
    2 3 3
    1 2 4
    3 1 5
    c 2 1
    r 1 2
    g 1 3
    
    output
    5

    Hint

    Let's see how the table changes in the second test case.

    After the first operation is fulfilled, the table looks like that:

    2 1 4

    1 3 5

    After the second operation is fulfilled, the table looks like that:

    1 3 5

    2 1 4

    So the answer to the third query (the number located in the first row and in the third column) will be 5.

    #include<iostream>
    #include<stdio.h>
    #define max1 1005
    using namespace std;
    int a[max1][max1],r[max1],c[max1];
    int main()
    {
        int n,m,t;
        scanf("%d%d%d",&n,&m,&t);
        for(int i=1;i<=n;i++)
            r[i]=i;
        for(int i=1;i<=m;i++)
            c[i]=i;
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=m;j++)
            {
                scanf("%d",&a[i][j]);
            }
        }
        getchar();
        char ch;
        for(int i=0;i<t;i++)
        {
            //getchar();
            scanf("%c",&ch);
            int n1,n2;
            scanf("%d%d",&n1,&n2);getchar();
            if(ch=='r')
            {
    
                int temp=r[n1];
                r[n1]=r[n2];
                r[n2]=temp;
            }
            else if(ch=='c')
            {
                int temp=c[n1];
                c[n1]=c[n2];
                c[n2]=temp;
            }
            else if(ch=='g')
            {
                printf("%d
    ",a[r[n1]][c[n2]]);
            }
        }
        return 0;
    }
    View Code

    模拟,根据题目操作一遍就行。注意要用scanf,cin会超时。

  • 相关阅读:
    现代软件工程 第一章 概论 第4题——邓琨
    现代软件工程 第一章 概论 第9题——邓琨
    现代软件工程 第一章 概论 第7题——张星星
    现代软件工程 第一章 概论 第5题——韩婧
    hdu 5821 Ball 贪心(多校)
    hdu 1074 Doing Homework 状压dp
    hdu 1074 Doing Homework 状压dp
    hdu 1069 Monkey and Banana LIS变形
    最长上升子序列的初步学习
    hdu 1024 Max Sum Plus Plus(m段最大子列和)
  • 原文地址:https://www.cnblogs.com/superxuezhazha/p/5397001.html
Copyright © 2011-2022 走看看