题目描述
现在校长在校园网上公布了一份座位表,n位老师从左到右依次排成一行。老师们都对这个座位很满意。
然而到了开会时,校长不小心把座位表打乱了,老师们很不满。老师们并不在意自己的位置变了多少,但如果有一对老师a和b,他们原来的座位是a在b左边,现在变成了a在b右边,那么这一对老师便会贡献一单位不满值。
校长想知道这些老师的总不满值是多少。
输入格式
第一行一个正整数n,为n位老师。
第二行有n个字符串,每个字符串代表老师的名字(大小写敏感)。这一行代表原来的座位表。
第三行有n个字符串,代表打乱后的座位表。
输出格式
老师们的总不满值。

输入输出样例
输入 #1
3
Stan Kyle Kenny
Kyle Stan Kenny

输出 #1
1

输入 #2
5
A B C D E
B A D E C

输出 #2
3

说明/提示
30%的数据,n≤1000;
100%的数据,n≤100000,每位老师名字长度不超过5,只有大小写字母并且互不相同。注意名字对大小写敏感。

解释:其实就是求一个逆序数的问题,我们对原始排序名字进行从小到大编码,然后求打乱后的逆序数就好了,这里我们用归并排求解

#include<iostream>
#include<map>
#include<string>
using namespace std;
map<string,long long> G;
int n=0;
long long a[100003]={0};
long long b[100003]={0};
long long merge(long long *a,int l,int r){int mid=(l+r)/2;int i=l,j=mid+1;int t=l;long long ret=0;while(i<=mid&&j<=r){if(a[i]<a[j]){b[t++]=a[i++];}else{b[t++]=a[j++];ret+=mid-i+1;}}while(i<=mid) b[t++]=a[i++];while(j<=r) b[t++]=a[j++];for(int i=l;i<=r;i++){a[i]=b[i];}return ret;
}
long long Qsort(long long *a,int l,int r){if(l==r) return 0;int mid=(l+r)/2;long long ret=0;ret+=Qsort(a,l,mid);ret+=Qsort(a,mid+1,r);ret+=merge(a,l,r);return ret;
}
int main(){ios::sync_with_stdio(false);cin>>n;for(int i=1;i<=n;i++){string name;cin>>name;G[name]=i;}for(int i=1;i<=n;i++){string name;cin>>name;a[i]=G[name];}cout<<Qsort(a,1,n)<<endl;return 0;
}

洛谷-5149 会议座位相关推荐

  1. 洛谷 P5149 会议座位

    洛谷 P5149 会议座位 Description 现在校长在校园网上公布了一份座位表,n位老师从左到右依次排成一行.老师们都对这个座位很满意. 然而到了开会时,校长不小心把座位表打乱了,老师们很不满 ...

  2. 洛谷P5149——会议座位【字典树 + 逆序对】

    洛谷P5149--会议座位 大致思路:我们先用字典树把单词存起来,在每个单词的末尾节点给这个单词按照出现顺序标号,然后在查找的过程中,把其出现顺序用一个数组一次存起来,然后求这个数组的逆序对即可. # ...

  3. 洛谷P5149 会议座位

    P5149 会议座位 字符串哈希 + 归并排序 代码 #include<bits/stdc++.h> using namespace std; const int N = 1e5 + 10 ...

  4. 洛谷 P5149 会议座位(树状数组+Trie)

    题目是一道求逆序对的题目,但是我们先要将每一个名字转化为数字再进行计算 求逆序对的个数用树状数组或归并即可 题目有个坑点,名字包含大小写字母,所以字典树需要开大一点 #include <iost ...

  5. (二分图)洛谷P2071座位安排

    洛谷P2071座位安排 思路: 网络流难在建图上面. 这题(应该也可以,我没尝试过)用二分图匹配去跑.可以拆点,将一排的座位拆成两个点,一个iii,一个i+ni+ni+n,然后匈牙利算法跑. 也可以用 ...

  6. P5149 会议座位(逆序对 离散化 hash 归并排序)

    题目链接:会议座位 - 洛谷 题目背景 话说校长最近很喜欢召开全校教职工大会,让老师们强行听他装逼 题目描述 现在校长在校园网上公布了一份座位表,n 位老师从左到右依次排成一行.老师们都对这个座位很满 ...

  7. 洛谷刷题C语言:闰年判断、Apples、洛谷团队系统、肥胖问题、三位数排序

    记录洛谷刷题QAQ 一.[深基3.例3]闰年判断 题目描述 输入一个年份,判断这一年是否是闰年,如果是输出 111,否则输出 000. 输入格式 输入一个正整数 nnn,表示年份. 输出格式 输出一行 ...

  8. [洛谷P2161] [SHOI2009]会场预约

    洛谷题目链接:[SHOI2009]会场预约 题目描述 PP大厦有一间空的礼堂,可以为企业或者单位提供会议场地.这些会议中的大多数都需要连续几天的时间(个别的可能只需要一天),不过场地只有一个,所以不同 ...

  9. 洛谷 题单2分支结构(freshman锻炼牛犇勿喷)

    第一题数的性质 题目描述 一些数字可能拥有以下的性质: 性质 1:是偶数: 性质 2:大于 4 且不大于 12. 小A 喜欢这两个性质同时成立的数字:Uim 喜欢这至少符合其中一种性质的数字:八尾勇喜 ...

最新文章

  1. vscode配置记录
  2. ‘wmic‘ 不是内部或外部命令,也不是可运行的程序 解决方法
  3. 域名后缀php做跳转首页,手机移动端网站和电脑PC端网站域名使用与跳转PHP代码...
  4. 唯一索引允许为空吗_一次 MySQL 索引面试,被面试官怼的体无完肤!
  5. 插入数据类型为DateTime时为空值时,为什么SQL SERVER会自动加上1900-01-01
  6. 大会门票限免最后一周!来聊聊 NVIDIA、抖音等大厂的 AI 技术落地
  7. 2017年商业智能的6大趋势
  8. 力扣题目——107. 二叉树的层序遍历 II
  9. java x1价格_java I/O总结
  10. 梭子鱼下一代防火墙在对比研究中名列榜首
  11. amd玄冰400怎么拆图解_【装机帮扶站】第735期:“无货”当道的京东年底大预售来了(AMD篇)...
  12. Matlab图像处理系列3———空间域锐化滤波器
  13. 质子矩阵助力工厂从“制造”向“智造”快速转型!
  14. 大数据学习之路16-倒排索引创建,输入切片FileSplit应用
  15. 有些路,只能一个人走。
  16. 强制打印方法,输出重定向解决
  17. 吴恩达机器学习课程笔记(11-19章)
  18. 亥姆霍兹线圈、Helmholtz线圈、磁场线圈
  19. XY的模式识别学习笔记-最小平方误差准则分类 MSE
  20. linux系统装fluent没有界面,linux系统下安装fluent

热门文章

  1. python程序设计论文_浅谈初中Python程序设计教学的实践与体会
  2. 软件设计师备考笔记(炸薯条的视频)
  3. 离职后重回老东家?你需要明白这些事情
  4. S7-1200 PLC 激活系统时钟存储位后,相应的位没有工作?
  5. Linux系统下7个好用的PDF编辑器推荐
  6. 2023.02.09 草图大师厨房效果图1skp素材效果图
  7. 阿里内部全新整理,Java面试题库+全栈笔记限时开源
  8. 内蒙古大学计算机学院保研到哪些学校,关于2021年推荐优秀应届本科毕业生免试攻读研究生的通知...
  9. 【教程】Unity账号注册和Unity Hub激活
  10. rk3288驱动调试