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

洛谷 P5149:会议座位 ← 归并排序 + 逆序对

​【题目来源】
https://www.luogu.com.cn/problem/P5149

【题目描述】
话说校长最近很喜欢召开全校教职工大会。现在校长在校园网上公布了一份座位表,n 位老师从左到右依次排成一行。老师们都对这个座位很满意。
然而到了开会时,校长不小心把座位表打乱了,老师们很不满。老师们并不在意自己的位置变了多少,但如果有一对老师 a 和 b,他们原来的座位是 a 在 b 左边,现在变成了 a 在 b 右边,那么这一对老师便会贡献一单位不满值。
校长想知道这些老师的总不满值是多少。

【输入格式】
第一行一个正整数 n,为 n 位老师。
第二行有 n 个字符串,每个字符串代表老师的名字(大小写敏感)。这一行代表原来的座位表。
第三行有 n 个字符串,代表打乱后的座位表。

【输出格式】
一行,一个正整数,表示老师们的总不满值。

【输入样例一】
3
Stan Kyle Kenny
Kyle Stan Kenny

【输出样例一】
1

【输入样例二】
5
A B C D E
B A D E C

【输出样例二】
3

【数据范围】
对于 30% 的数据,1≤n≤10^3。
对于 100% 的数据,1≤n≤10^5,每位老师名字长度不超过 5,只有大小写字母并且互不相同。注意名字对大小写敏感。

【算法分析】
● 本题就是在求逆序对,只不过将“洛谷 P1177:【模板】排序”中的数字换成了本题中的字符串。“洛谷 P1177:【模板】排序”的代码详见:https://blog.csdn.net/hnjzsyjyj/article/details/145693691

● 注意:ans 类型设为 long long。否则,只能得 60 分。​​​​​

【算法代码】

#include <bits/stdc++.h>
using namespace std;const int maxn=1e5+5;
int a[maxn],t[maxn];
map<string,int> mp;
string s;
long long ans;
int n;void merge_sort(int le,int ri) {if(le==ri) return;int mid=(le+ri)>>1;merge_sort(le,mid);merge_sort(mid+1,ri);int p=le;int i=le,j=mid+1;while(i<=mid && j<=ri) {if(a[i]<a[j]) {t[p++]=a[i++];ans=ans+j-mid-1;} else t[p++]=a[j++];}while(i<=mid) {t[p++]=a[i++];ans=ans+j-mid-1;}while(j<=ri) t[p++]=a[j++];for(int i=le; i<=ri; i++) a[i]=t[i];
}int main() {cin>>n;for(int i=1; i<=n; i++) {cin>>s;mp[s]=i;}for(int i=1; i<=n; i++) {cin>>s;a[mp[s]]=i;}merge_sort(1,n);cout<<ans<<endl;return 0;
}/*
in:
5
A B C D E
B A D E Cout:
3
*/




【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/145693691
https://blog.51cto.com/u_13536312/5371438
https://blog.csdn.net/hnjzsyjyj/article/details/145679752

 

 

http://www.jsqmd.com/news/765490/

相关文章:

  • 2026河北石家庄银元回收指南:素军奢品汇古钱币纸币纪念钞回收须知 - 品牌企业推荐师(官方)
  • 架构师技能图谱解析:从微服务到云原生的系统化成长路径
  • 3分钟拯救你的B站收藏:m4s-converter让你的缓存视频重获新生!
  • AD21信号线束实战:从原理图到PCB,如何用它简化复杂接口设计(以USB_PHY为例)
  • 长期主义者的选择:哪些品牌的激光扫描仪在恶劣环境下依然稳定? - 品牌推荐大师
  • 河北邯郸企业认定市级、省级、国家级企业技术中心有多少奖补?
  • 最新!2026 北京配眼镜推荐TOP5实测:高性价比之王+专业验光不踩雷 - 品牌企业推荐师(官方)
  • 2026年北京到西藏旅游团推荐:口碑好又靠谱的选择 - 品牌企业推荐师(官方)
  • 中望CAD许可不够用:国产替代后如何满足“大型图纸”的并发需求?
  • 保姆级教程:在Ubuntu 20.04 ROS Noetic上,用move_base让你的机器人学会自主导航(附完整代码包)
  • 3分钟快速备份你的QQ空间:GetQzonehistory完整备份指南
  • 如何用LinkSwift网盘直链下载助手提升你的下载效率
  • 别再乱删文件了!Win10清理软件后explorer.exe报错的深度分析与预防指南
  • 从订单表爆炸到性能起飞:拆解某大厂千万级日活业务的分库分表实战(附MyCat2配置)
  • GEO获客哪家好 - 品牌企业推荐师(官方)
  • 如何用QMCDecode快速解锁QQ音乐加密音频:免费Mac工具完整指南
  • 让本地的前端能被他人访问,一个免费域名的方式-Ngrok,支持MacOS、Windows、Linux、Docker等
  • 1K预算捡漏华为RH1288V3:手把手教你从开机到装好桌面(附BIOS配置避坑)
  • 告别硬件SPI引脚冲突:STM32软件模拟SPI驱动RC522的移植指南与性能实测
  • AI大模型求职避坑指南:给普通人的“职场邪修”秘籍,收藏备用!
  • 企业内网系统通过Taotoken代理安全稳定调用外部大模型API
  • 基于S2I的PHP容器化构建:sclorg/s2i-php-container项目实战解析
  • FF14智能钓鱼计时器终极指南:渔人的直感完整使用教程
  • 收到Isight侵权通告?许可倍增技术让您用现有许可化解风险
  • BurpSuiteCN-Release:终极中文渗透测试效率提升方案
  • AI员工时代已来:企业如何选择靠谱的“AI团队”实现降本增效?
  • SAP报表增强实战:5分钟搞定ME2L/ME2M/ME3M字段添加(附SE18配置截图)
  • STC15F2K60S2单片机实战:手把手教你复刻蓝桥杯“最难”彩灯控制器(附完整源码)
  • 在自动化测试流程中集成多模型API调用以提升测试覆盖率
  • 别再死记硬背FCN了!用VGG16实战搭建FCN-8s,从Convolutionalization到评价指标一次讲透