题头

Alice 和 Bob 又聚在一起了!他们已经厌倦了取石子游戏,现在他们热衷于切题。于是,Alice 找到了一道题让 Bob 做。Alice 有一张 N*M 的表格,每个格子上有一个值 a[i][j] (1≤i≤N,1≤j≤ M),Alice 将会给 Bob 若干个操作,操作分以下三类:
交换两行
交换两列
输出某一个格子上的值
由于 Bob 正在为给 Alice 出题而发愁,他请你完成这个题。
输入格式
第一行包含三个整数 N,M,Q,表示表格有 N 行 M 列,以及有 Q 个操作。
接下来 N 行,每行 M 个数用来描述 Alice 的表格。
接下来 Q 行,每行一个字符 S 和两个整数 x,y。其中 S 取 c,r,g 中的一个。
如果 S=c ,交换 x,y两列(1≤x,y≤m);
如果 S=r ,交换 x,y两行(1≤x,y≤n);
如果 S=g ,输出 a[x][y](1≤x≤n;1≤y≤m)。
输出格式
对于每一个 S=g 的操作,输出要求的数并换行。
样例数据 1
输入 
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
输出
8
9
6
备注
【数据范围】
对 50% 的输入数据 :1≤n,m,Q≤100。
对 100% 的输入数据 :1≤n,m≤1000;1≤Q≤500000;a[i][j]≤10^6。

第一眼看起来好像要用数据结构,其实是一道nc的模拟题,主要是考试的时候时间不够,只够敲一个50的暴力,根本来不及仔细看

可以发现无论如何交换,值都是不会变化的,而交换行的时候列不会变,交换列的时候行不会变,我们只需要维护现在的每一行原来属于哪一行就是了;

代码

#include<bits/stdc++.h>
using namespace std;
int a[1005][1005],x,y,hang[1005],lie[1005],n,m,q;
char ch,s;
inline int read()
{while((ch=getchar())<'0'||ch>'9'){;}int res=ch-'0';while((ch=getchar())>='0'&&ch<='9')res=res*10+ch-'0';return res;
}
int main(){n=read(),m=read(),q=read();for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){a[i][j]=read();}}for(int i=1;i<=n;i++)hang[i]=i;for(int i=1;i<=m;i++)lie[i]=i;for(int i=1;i<=q;i++){cin>>s;x=read(),y=read();if(s=='c')swap(lie[x],lie[y]);else if(s=='r')swap(hang[x],hang[y]);else if(s=='g')cout<<a[hang[x]][lie[y]]<<endl;}return 0;
}

转载于:https://www.cnblogs.com/forever-/p/9736091.html

NOIP模拟——change相关推荐

  1. NOI.AC NOIP模拟赛 第六场 游记

    NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...

  2. 【noip模拟赛4】Matrix67的派对 暴力dfs

    [noip模拟赛4]Matrix67的派对 描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们安排 ...

  3. 【HHHOJ】NOIP模拟赛 捌 解题报告

    点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...

  4. 闵梓轩大佬のnoip模拟题D1 总结 2017/10/26

    背景 题目概括 T1 题面 分析 90分算法 满分算法 T2 题面 分析 部分分算法 满分算法 满分代码 T3 题面 分析 代码 总结 背景 这道题目是去年的金牌大佬闵梓轩在一年前出的一套noip模拟 ...

  5. jyzy noip模拟赛5.22-2

    不知道哪来的题 jyzy noip模拟赛5.22-2 样例输入 1 2 3 4 样例输出 0.200000000000000 数据 |a|,|b|,|c|,|d|<=1e9 很多大佬迅速想到二分 ...

  6. NOIP模拟赛csy2021/10/30

    NOIP模拟赛csy2021/10/30 比赛时间规划 赛后反思与总结 这..总的来说感觉打的很不好,根本没有状态,有一部分原因是今天来晚了,太慌,更多的还是这次题感觉很难o(╥﹏╥)o 比赛时间规划 ...

  7. NOIP模拟(10.22)T2 杆子的排列

    杆子的排列 题目背景: 10.22 NOIP模拟作业T2 分析:DP 定义状态dp[i][j][k]表示,目前枚举到第i大的数(即n - i + 1)那么显然如果这一个数放在左边,可以在左边被看到,放 ...

  8. Noip 模拟练习5

    Noip 模拟练习5 满分300,本人240.修正后300. 难度中等. 太空密码 Description 人类一直致力于探索地外文明,为此科学家们建造了一个巨大的射电望远镜 用于接收宇宙射线.一天从 ...

  9. NOIP模拟赛 四校联考 递推 + 分类讨论 + 树上期望

    NOIP 模拟题 题目名称兔子被子蚊子 源程序文件名rabbit.cpp quilt.cpp mosquito.cpp 输入文件名rabbit.in quilt.in mosquito.in 输出文件 ...

最新文章

  1. Oracle DMP 操作笔记之根据DMP逆向推导出导出的表空间名称
  2. shiro 解决 跨域(仅端口不同) 登陆 问题
  3. posix多线程有感--线程高级编程(线程和fork,exec)
  4. 3D数学基础:图形与游戏开发---随笔三
  5. LINUX中软件包的分类
  6. swift 选中长按项_Swift下使用UICollectionView 实现长按拖拽功能
  7. wxPython中文教程 简单入门加实例
  8. flutter-dart
  9. 突发!百度AI开发者大会李彦宏遭泼水 百度官方回应...
  10. Web容器初始化过程
  11. 【LeetCode】49. Group Anagrams
  12. iOS开发之TableView去掉单个cell的间隔线和去掉全部间隔线和去掉tableView多余的间隔线
  13. 阿里巴巴实习生笔试研发工程师
  14. pytest系列教程——4、fixture详解
  15. 大数据基础概念(一)
  16. 概率论在实际生活的例子_概率论在实际生活中的应用
  17. 风螺旋线公切线的算法
  18. python基础语法和变量
  19. IDEA警告:SQL dialect is not configured
  20. Gatsby 学习 - 03 Gatsby 插件

热门文章

  1. 项目实体类报错_第一次开发项目感想
  2. linux进程管理命令实验,实验2Linux进程管理.doc
  3. java创建变量的过程_java 对象的创建过程
  4. mysql 排除另一表_MYSQL 两表 排除 重复记录
  5. MySQL限制CPU资源使用_压缩大文件时如何限制CPU使用率?----几种CPU资源限制方法的测试说明...
  6. cmd c语言 文件,DSP,如何编写CMD文件!(转)
  7. liferay 学习网站 作者为 胡启稳
  8. 2023年考研之路或将更难
  9. Fragment之一:基本原理
  10. 使用URLConnection获取网页信息的基本流程