C++題解(35) 2025年順德區中小學生程序設計展示活動(初中組C++) 換位(一)

題目描述

小明班上是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 加速版本的圖像幾…