题目描述

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

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

①行对换;

②列对换。

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

输入格式

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

第二至z+1行有三个整数,分别为a、b、c。若a为1,则将bc行对换;若a为2,则将bc列对换。

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

输出格式

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

 输入输出样例 1

输入 #1
5 5 2
1 1 2
2 3 1
1 1

输出 #1
8
 

说明/提示

对于60%的数据:1≤n,m,z≤1000;

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

参考答案

#include <iostream>
using namespace std;
int main() 
{int n,m,z,x,y;int p[5001],q[5001],a,b,c;cin>>n>>m>>z;for(int i=1;i<=n;i++) p[i]=i;for(int i=1;i<=m;i++) q[i]=i;for(int i=1;i<=z;i++){cin>>a>>b>>c;if(a==1)swap(p[b],p[c]);else swap(q[b],q[c]);}cin>>x>>y;int row=p[x];int col=q[y];cout<<(row-1)*m+col;return 0;
}

解题思路

  1. 初始化行和列的映射数组:我们使用两个数组pq来分别记录行和列的当前映射关系。初始时,p[i] = i表示第i行当前还是原来的第i行,q[j] = j表示第j列当前还是原来的第j列。

  2. 处理交换操作:对于每个交换操作,如果是行交换(a=1),我们交换p数组中的bc位置的值;如果是列交换(a=2),我们交换q数组中的bc位置的值。

  3. 查询最终座位号:根据处理后的pq数组,找到第x行和第y列对应的原始行和列。原始座位号的计算公式为  (原始行-1)*m+原始列 ,其中m是列数。

  4. (直接用二维数组模拟会超时)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/83822.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/83822.shtml
英文地址,请注明出处:http://en.pswp.cn/web/83822.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

征程 6 Cache 使用场景

一、缓存机制基础 1.1 缓存类型对比 1.2 典型应用场景 缓存缓冲区 &#xff1a;适用于高频 CPU 访问场景&#xff08;如 AI 推理中间数据&#xff09; 非缓存缓冲区 &#xff1a;适用于设备直传场景&#xff08;如 DMA 数据流&#xff09; 二、数据一致性问题深度解析 2.1…

山东大学软件学院项目实训-基于大模型的模拟面试系统-个人博客(十)

开发博客&#xff1a;AI面试官个性化出题MCP功能最终完善 本周作为项目开发的最后冲刺阶段&#xff0c;我们致力于进一步增强AI面试官在个性化题目生成方面的能力。核心工作是新增和优化了一系列MCP&#xff08;Multi-turn Conversation Protocol&#xff09;工具&#xff0c;…

Rabbitmq后台无法登录问题解决

rabbitmq pod正常运行&#xff0c;查看pod日志也没有发现异常报错。 我们进入容器查看插件是否正常启用&#xff1a; $ kubectl exec -it rabbitmq-hitch-0 -n rabbitmq -- rabbitmq-plugins list Listing plugins with pattern ".*" ...Configured: E explicitly…

期权入门介绍

文章目录 1.基本概念2.期权损益图买入看涨期权卖出看涨期权买入看跌期权卖出看跌期权 3.买卖逻辑3.1 买卖逻辑买入看涨期权卖出看涨期权买入看跌期权卖出看跌期权 3.2 决策依据 4.行权方式美式期权 (American Style)欧式期权 (European Style)百慕大期权 (Bermudan Style)关键区…

useMemo vs useCallback:React 性能优化的两大利器

文章目录 什么是 useMemo&#xff1f;基本语法使用场景实际例子 什么是 useCallback&#xff1f;基本语法使用场景实际例子 核心区别对比什么时候使用它们&#xff1f;使用 useMemo 的时机使用 useCallback 的时机 常见误区和注意事项误区 1&#xff1a;过度使用误区 2&#xf…

C++ 记录

1. 字符串查找字符 bool findMap(char ch){string mapper "aeiouAEIOU";return mapper.find(ch) ! string::npos;} 2.substr函数 string substr(size_t pos 0, size_t len npos) const; 3.to_string && stoi 函数 iota 填充一个范围&#xff0…

朴朴超市小程序 sign-v2 分析

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 部分python代码 cp execjs.compile(…

Azure 机器学习初学者指南

Azure 机器学习初学者指南 在我们的初学者指南中探索Azure机器学习&#xff0c;了解如何设置、部署模型以及在Azure生态系统中使用AutoML & ML Studio。Azure 机器学习 &#xff08;Azure ML&#xff09; 是一项全面的云服务&#xff0c;专为机器学习项目生命周期而设计&am…

HTML 从入门到起飞 · 系列合集:一站式学习不掉线

一、&#x1f4bb;计算机基础 &#x1f31f;艾伦麦席森图灵&#x1f31f; ⚔️ 二战时期&#xff0c;破译了德军的战争编码——英格玛。 &#x1f54a;️ 让二战提前2年结束&#xff0c;拯救了上千万人的生命。 &#x1f3c6; 设立图灵奖&#xff0c;被后人誉为&#xff1a;&qu…

NodeJS的yarn和npm作用和区别,为什么建议用yarn

一、yarn和npm作用和区别 yarn异步执行安卓&#xff0c;npm同步执行安装 yarn会复用&#xff0c;已经安装的不会再次安装。不过新版npm已经解决了。 Yarn安装信息干净一点&#xff0c;npm会罗列包信息 下面是关于 Node.js 中 npm 和 yarn 的完整对比与说明&#xff0c;帮你…

青少年编程与数学 01-011 系统软件简介 19 SSMS 数据库管理工具

青少年编程与数学 01-011 系统软件简介 19 SSMS 数据库管理工具 一、历史发展二、技术特色三、主要功能四、应用场景五、产品版本六、使用方法七、市场地位八、发展前景全文总结 **摘要&#xff1a;**SSMS 是微软开发的数据库管理工具&#xff0c;首次引入于 SQL Server 2005&a…

React配置别名路径完整指南

文章目录 什么是别名路径配置方法1. Create React App 项目方法一&#xff1a;使用jsconfig.json&#xff08;推荐&#xff09;方法二&#xff1a;使用CRACO&#xff08;React App Rewired的替代方案&#xff09; 2. Vite 项目修改vite.config.js配置TypeScript支持 3. Next.js…

本周大模型新动向:自主机器学习、状态机推理、上下文压缩

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 01 Sentinel: Attention Probing of Proxy Models for LLM Context Compression with an Understanding Perspective 检索增强型生成&#xff08;RAG&#xff09;通过外部上下文增强了大型语言模型&#xff08;…

从零开始掌握 Docker:核心命令与实践指南

从零开始掌握 Docker&#xff1a;核心命令与实践指南 摘要&#xff1a; 本文系统整理了 Docker 的核心概念与常用命令&#xff0c;涵盖镜像管理、容器操作、数据存储、网络配置、Compose 编排以及 Dockerfile 构建等内容。通过清晰的命令示例和实用说明&#xff0c;帮助开发者…

RDMA简介7之RoCE v2可靠传输

可靠传输技术旨在通过多种方法确保数据包在传输过程中不会丢失或损坏&#xff0c;同时保证数据包按发送顺序到达接收端&#xff0c;其要求在链路发生丢包或网络发生拥塞等情况下能够完全保证数据包的正确性同时尽可能地提高传输速率。RoCE v2协议实现可靠传输的技术手段共有三种…

java33

1.特殊文件 属性文件properties 配置文件xml 注意&#xff1a;XML文件可以直接在浏览器里面打开&#xff1a; 了解知识&#xff1a; 2.日志技术 3.单元测试 注意&#xff1a;点击方法内部再右键运行是测试改方法的&#xff0c;点击类名再右键运行才是测试整个测试类的&#xff…

OSI 七层网络模型

目录 OSI 七层网络模型七层模型1. 物理层&#xff08;Physical Layer&#xff09;2. 数据链路层&#xff08;Data Link Layer&#xff09;3. 网络层&#xff08;Network Layer&#xff09;4. 传输层&#xff08;Transport Layer&#xff09;5. 会话层&#xff08;Session Layer…

Spring Boot 4.0.0 新特性详解:深入解读 Spring Framework 7.0.0

你是否注意到创建新 Spring Boot 项目时出现的最新选项?Spring Boot 4.0.0 预览版现已发布,基于最新的 Spring Framework 7.0.0 🌱。这个版本引入了众多激动人心的新特性,不仅提升了开发效率,改善了空值安全性,还简化了 Web 应用程序的开发流程。本文将深入探讨这些重要…

从0到1构建高并发秒杀系统:实战 RocketMQ 异步削峰与Redis预减库存

&#x1f680;从0到1构建高并发秒杀系统&#xff1a;实战 RocketMQ 异步削峰与Redis预减库存 &#x1f4d6;一、 简介 在电商、抢票等高并发场景中&#xff0c;秒杀系统面临着“高并发、库存稀缺、易超卖、系统易崩”的严峻挑战。传统的同步处理架构难以支撑海量请求并发下的性…

OpenCV CUDA模块图像变形------对图像进行任意形式的重映射(Remapping)操作函数remap()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 该函数根据给定的映射表 xmap 和 ymap 对图像进行 任意形式的重映射&#xff08;Remapping&#xff09;操作&#xff0c;是 GPU 加速版本的图像几…