news 2026/4/23 12:38:55

打卡信奥刷题(2554)用C++实现信奥 P2133 天作之合

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
打卡信奥刷题(2554)用C++实现信奥 P2133 天作之合

P2133 天作之合

题目背景

生活就是一次 A*,你是我的第一个目标状态。——小明

题目描述

在小明的学校中,有若干个女生。小明认为每个女生的特征可以抽象为一个666位的数字串,其中不重复地包含1∼61\sim616666个数码。

在小明心中,有一个理想的女生,她的特征数字串为AAA。如果串YYY是串XXX交换两个连续的数码所得,那么我们认为特征数字串XXXYYY相似。首先,小明找到了他的同桌,她的特征数字串为SSS。每次,小明会寻找一个特征数字串和当前串相似的女生,直到寻找到适合他的(即特征数字串和AAA相同或相似的)。定义每个女生的合适程度为找到此人至少需要找女生的数量(包括他的同桌和此人自己)。显然,合适程度数值越小的女生越适合小明。

然而,小明觉得老天不会轻易地让他找到,所以他认为合适程度第二小的才是他最合适的伴侣(也就是小红)。那么,请你帮他写一个程序,求出对于小明,小红的合适程度是多少。

输入格式

111行,一个特征数字串AAA

222行,一个特征数字串SSS

输出格式

一行,一个非负整数表示小红的合适程度。

输入输出样例 #1

输入 #1

123654 123456

输出 #1

3

说明/提示

样例解释:

最短的两个「合适的数字串」分别是454\tt 454454545\tt 545545,故答案为333


对于全部数据,保证串AAASSS合法,且保证能找到。

C++实现

#include<bits/stdc++.h>usingnamespacestd;string a,b;intdata[10];map<char,int>m;intmain(){cin>>a>>b;a=' '+a;//加上空格,个人习惯使用s[1]~s[6]b=' '+b;intans=0,cnt=0;for(inti=1;i<=6;i++)m[a[i]]=i;//map标记每个数字正确的位置for(inti=1;i<=6;i++)data[i]=m[b[i]];//同上,data[i]为b[i]应该在的位置for(inti=1;i<=6;i++)for(intj=i+1;j<=6;j++)if(data[j]<data[i])ans++;//求逆序对个数if(ans<2)ans+=2;//特判,如果没交换或者只交换了一次,必定属于最优解加2的情况else{for(inti=1;i<=6;i++)if(abs(data[i]-m[a[i]])==ans)cnt++;//特殊情况出现if(cnt==1)ans+=2;//只有一个数在移动}cout<<ans;return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 9:59:57

Kotaemon插件架构揭秘:轻松集成外部API和业务逻辑

Kotaemon插件架构揭秘&#xff1a;轻松集成外部API和业务逻辑 在企业级AI应用日益复杂的今天&#xff0c;一个智能对话系统是否“好用”&#xff0c;早已不再仅仅取决于它背后的语言模型有多强大。真正决定成败的&#xff0c;往往是那些看不见的工程细节&#xff1a;能否快速接…

作者头像 李华
网站建设 2026/4/23 12:34:27

Triple Removal Maximum Array 2

两场算法竞赛C题通关手记&#xff1a;最近刷竞赛题时遇到两道很有意思的C题&#xff0c;分别是Triple Removal和Maximum Array 2。一道考的是前缀和加二分的区间查询技巧&#xff0c;另一道则是围绕MEX和区间最小值展开的构造题&#xff0c;琢磨透这两道题的过程里&#xff0c;…

作者头像 李华
网站建设 2026/4/23 11:17:49

48、多线程编程全面解析

多线程编程全面解析 1. 计算机性能发展与多线程需求 在2004年之前,提升计算机性能主要依靠提高单个处理器的能力。然而,如今的硅微芯片技术受物理限制,使得单个处理器性能难以进一步提升,计算能力与散热的阈值趋于稳定,甚至出现了性能停滞和小幅度下降的情况。 尽管如此…

作者头像 李华
网站建设 2026/4/23 11:19:19

53、多线程编程中的同步、存储与异步模式解析

多线程编程中的同步、存储与异步模式解析 在多线程编程领域,存在着诸多复杂的问题和有效的解决方案。下面将详细介绍线程本地存储、定时器以及异步编程模型等关键内容。 线程本地存储 在某些情况下,使用同步锁会导致性能下降和可扩展性受限,或者对特定数据元素进行同步操…

作者头像 李华
网站建设 2026/4/23 9:52:15

9、量子力学原理与量子计算机:从理论到实践

量子力学原理与量子计算机:从理论到实践 量子力学基础 测量后的状态描述 在量子力学中,为了预测测量后的状态,我们会对初始状态向量进行改写。对于一个有 (n + 1) 个自由度的系统,初始状态向量 (|\psi\rangle_{n + 1}) 可以表示为: [|\psi\rangle_{n + 1} = \sqrt{p(0…

作者头像 李华
网站建设 2026/4/23 10:45:25

17、量子计算中的Shor算法与期权定价量子算法解析

量子计算中的Shor算法与期权定价量子算法解析 1. Shor算法:经典与量子的碰撞 在数论和密码学领域,分解大整数一直是一个极具挑战性的问题。传统的经典算法在处理这一问题时,随着数字规模的增大,计算复杂度会急剧上升。而Shor算法的出现,为这一难题带来了新的解决方案。 …

作者头像 李华