题目背景
话说校长最近很喜欢召开全校教职工大会,让老师们强行听他装逼

题目描述
现在校长在校园网上公布了一份座位表,nn 位老师从左到右依次排成一行。老师们都对这个座位很满意。

然而到了开会时,校长不小心把座位表打乱了,老师们很不满。老师们并不在意自己的位置变了多少,但如果有一对老师 aa 和 bb,他们原来的座位是 aa 在 bb 左边,现在变成了 aa 在 bb 右边,那么这一对老师便会贡献一单位不满值。

校长想知道这些老师的总不满值是多少。

输入格式
第一行一个正整数 nn,为 nn 位老师。

第二行有 nn 个字符串,每个字符串代表老师的名字(大小写敏感)。这一行代表原来的座位表。

第三行有 nn 个字符串,代表打乱后的座位表。

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

输入输出样例
输入
3
Stan Kyle Kenny
Kyle Stan Kenny
输出
1
输入
5
A B C D E
B A D E C
输出 #2复制
3

算法核心类似LIS的优化算法(将LIS转成LCS问题)
将字符串的位置记录下来,然后把改变以后的乱序归并成1234的有序!数列!
意思就是数字型的归并排序可以用了
mid-i+1记录下乱序的总数量

#include <bits/stdc++.h>
using namespace std;
map<string,int>m;
int N;
int a[100010],b[100010];
long long ans=0;
//简化版归并排序
void mergesort(int l,int r)
{if(l>=r)return;int mid=l+r>>1;mergesort(l,mid);mergesort(mid+1,r);int i=l,j=mid+1,k=l;while(i<mid+1&&j<r+1){if(a[i]<a[j])b[k++]=a[i++];else {ans+=mid-i+1;//这是计算这些逆序数的核心!b[k++]=a[j++];}}while(i<mid+1){b[k++]=a[i++];}while(j<r+1){b[k++]=a[j++];}for(i=l;i<r+1;i++){a[i]=b[i];}
}
int main()
{cin>>N;for(int i=1;i<=N;i++){string s;cin>>s;m[s]=i;}for(int i=1;i<=N;i++){string s;cin>>s;a[m[s]]=i;}mergesort(1,N);cout<<ans<<endl;
}

P5149 会议座位 归并相关推荐

  1. [Luogu] 逆序数P5149 会议座位

    P5149 会议座位 目录 前言 归并排序求逆序数 tire+树状数组求 逆序数 前言 这题的标签 有trie感觉奇奇怪怪的 没想到trie树还可以搞这个 牛逼66 归并排序求逆序数 #include ...

  2. 洛谷P5149 会议座位

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

  3. 洛谷 P5149 会议座位

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

  4. P5149 会议座位

    P5149 会议座位 题意: 其实还是求逆序对数. 解法: 用离散化统计每个数,再用树状数组求逆序对. CODE: #include<iostream> #include<cstdi ...

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

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

  6. P5149 会议座位(逆序对)

    P5149 会议座位(逆序对) 看到本题有字典树就来了,结果直接map下,也可做. 思路1:map,然后上BIT. 思路2:字典树实现类map,然后上BIT. code #include<bit ...

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

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

  8. 【洛谷】P5149 会议座位

    题目地址: https://www.luogu.com.cn/problem/P5149 题目背景: 话说校长最近很喜欢召开全校教职工大会,让老师们强行听他装逼 题目描述: 现在校长在校园网上公布了一 ...

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

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

最新文章

  1. 操作系统中进程并发运行的过程_三种电磁流量计运行过程中常见故障解决详情!...
  2. ASP.NET环境下配置FCKEditor并上传图片及其它文件
  3. magento 给My Account,Log In,Contact Us链接增加nofollow标签
  4. 变态题大串烧:微软面试问题 -- 三.难题:这类题有一定难度,如果得不到答案,也不能说明什么...
  5. 爬取淘宝定价需要多久时间_如何对设计工作进行定价—停止收​​取时间并专注于价值
  6. uk码对照表_这份中外衣服鞋码尺寸对照表,请收好!
  7. excel文件导出相应数据统计内容
  8. OpenResty HelloWorld
  9. 技术人必备的学习工具
  10. 【matlab】在图中插入矩形(框or阴影)
  11. 连载:面向对象葵花宝典:思想、技巧与实践(32) - LSP原则
  12. 计算机与未来的教育阅读答案,作文:计算机与未来的教育
  13. 洛雪音乐助手 0.18.2 — 音乐下载工具
  14. PHP最高权限的获取
  15. mht转html转换器apk,MHT文件转换工具BitRecover MHT Converter
  16. UML图详解(九)包图
  17. cannot load facet kotlin
  18. Linux 网络唤醒
  19. 如何将VScode作成便携版,且设置环境与本地电脑相同(包含VScode扩展)
  20. 荣耀v20支持html,荣耀V20支持NFC功能吗 荣耀V20支持NFC刷公交吗?

热门文章

  1. Oracle 登陆数据库的方式
  2. ubuntu安装nvidia显卡驱动黑屏nvidia-smi黑屏-显卡故障
  3. VirtualBox安装macOS Big Sur
  4. 正则表达式中(RegExp)的字符和转译
  5. 腾讯云发布php项目,利用腾讯云服务器进行微校开放平台开发
  6. L1-030. 一帮一-PAT团体程序设计天梯赛GPLT
  7. python循环结构教学设计_Python程序设计 循环结构说课稿
  8. C4D阿诺德Arnold渲染器:C4DtoA mac版(支持c4d r23)
  9. 计算机网络安全凭据,账户为用户或计算机提供安全凭证,以便用户和计算机能够登录到网络,并拥有响应访 - 百科题库网...
  10. 微星主板 Ubuntu20.04安装以及配置