当前位置: 首页 > java >正文

C++题解(36) 2025年顺德区中小学生程序设计展示活动(初中组C++)换位(二)

题目背景

【题干与《换位(一)》基本一致,仅增加了“位对换”指令,对应输入格式、样例、数据范围也有所不同】

【2025.5.12 数据已加强】

题目描述

小明班上是n行m列的座位排列,座位按照行列顺序编号,如6行7列,那么第1行第1列座位号为1号、第1行第7列为7号、第3行第4列为18号,如此递推。

现在期中考刚结束要进行全班换座位。班主任刚刚公布了换位指令,指令一共z条且只有以下几类:

①行对换;

②列对换;

③位对换。

请你根据换位指令找到换位结束后第x行第y列的原座位号。

输入格式

第1行为三个整数,分别为n、m、z,以空格隔开,整数含义如题所示。

第2至z+1行有三个或者五个整数,分别为a、b、c或a、b、c、e、f。若a为1,则将bc行对换;若a为2,则将bc列对换;若a为3,则将b行c列与e行f列的位置对换。

最后1行有两个整数,分别为x和y,整数含义如题所示。

输出格式

输出1行,输出第x行第y列的原座位号。

输入输出样例

输入 #1

5 5 3
1 1 2
2 3 1
3 1 1 1 2
1 2

输出 #1

8

说明/提示

样例解析

5行5列的座位,先将12行互换,再将31列互换,最后把(1,1)和(1,2)互换,得出最终(1,2)的原座位号为8。

数据范围

对于100%的数据:4999≤n,m≤5000,z=100000。

参考答案

#include <iostream>
using namespace std;
int main() 
{int n,m,z,x,y;int p[5001],q[5001],a,b,c,e,f;cin>>n>>m>>z;for(int i=1;i<=n;i++) p[i]=i;for(int i=1;i<=m;i++) q[i]=i;int xy[n+1][m+1];int l=0;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){xy[i][j]=(i-1)*m+j;	}}for(int i=1;i<=z;i++){cin>>a;if(a==1||a==2){cin>>b>>c;if(a==1)swap(p[b],p[c]);else swap(q[b],q[c]);}else{cin>>b>>c>>e>>f;int i1=p[b],j1=q[c];int i2=p[e],j2=q[f];swap(xy[i1][j1],xy[i2][j2]);}}cin>>x>>y;int row=p[x];int col=q[y];cout<<xy[row][col];return 0;
}
http://www.xdnf.cn/news/14461.html

相关文章:

  • BeckHoff <---> Mitsubishi RH-20FR(三菱)水平关节机械手通过网桥(EL6692)通讯
  • C++队列的那些事儿
  • db2主从同步 逻辑复制 APPLY_THROTTLE参数
  • LangGraph AI 系统测试与高可用保障体系
  • SwiftHub 项目分析
  • Linux之Python定制篇——新版Ubuntu24.04安装
  • to avoid naming wrong index webpage for one website
  • DrissionPage如何通过截图的方式获取图片
  • 水果商城管理系统笔记
  • 零基础上手Conda:安装、创建环境、管理依赖的完整指南
  • 计算机硬件——主板
  • 架构设计的核心原则与基础理论
  • 什么是java jdk?
  • Eclise中Lombck配置
  • DC8靶机渗透
  • 数据赋能(259)——数据赋能业务——数据驱动业务转型
  • DAY 54 Inception网络及其思考
  • 进程上下文与中断上下文详解
  • Spring AI的ChatClient和ChatModel接口
  • YOLOv3 正负样本划分详解
  • OpenIPC-aviateur上位机程序编译环境配置
  • 【AI大模型】Elasticsearch9 + 通义大模型实现语义检索操作详解
  • Logos心法:一份认知进化的活地图
  • Spring Boot 实训项目 - 图书信息网站
  • 哪些元器件对信号频率比较敏感
  • 从混沌到宝藏:数据治理、清洗与资产化的炼金术
  • 【图像质量评价技术专题】-PSNR和SSIM
  • 从代码学习深度学习 - 词的相似性和类比任务 PyTorch版
  • linux 阻塞和非阻塞
  • 【JAVA】支付,积分相关代码开发总结