P5149 会议座位 归并
题目背景
话说校长最近很喜欢召开全校教职工大会,让老师们强行听他装逼
题目描述
现在校长在校园网上公布了一份座位表,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 会议座位 归并相关推荐
- [Luogu] 逆序数P5149 会议座位
P5149 会议座位 目录 前言 归并排序求逆序数 tire+树状数组求 逆序数 前言 这题的标签 有trie感觉奇奇怪怪的 没想到trie树还可以搞这个 牛逼66 归并排序求逆序数 #include ...
- 洛谷P5149 会议座位
P5149 会议座位 字符串哈希 + 归并排序 代码 #include<bits/stdc++.h> using namespace std; const int N = 1e5 + 10 ...
- 洛谷 P5149 会议座位
洛谷 P5149 会议座位 Description 现在校长在校园网上公布了一份座位表,n位老师从左到右依次排成一行.老师们都对这个座位很满意. 然而到了开会时,校长不小心把座位表打乱了,老师们很不满 ...
- P5149 会议座位
P5149 会议座位 题意: 其实还是求逆序对数. 解法: 用离散化统计每个数,再用树状数组求逆序对. CODE: #include<iostream> #include<cstdi ...
- 洛谷P5149——会议座位【字典树 + 逆序对】
洛谷P5149--会议座位 大致思路:我们先用字典树把单词存起来,在每个单词的末尾节点给这个单词按照出现顺序标号,然后在查找的过程中,把其出现顺序用一个数组一次存起来,然后求这个数组的逆序对即可. # ...
- P5149 会议座位(逆序对)
P5149 会议座位(逆序对) 看到本题有字典树就来了,结果直接map下,也可做. 思路1:map,然后上BIT. 思路2:字典树实现类map,然后上BIT. code #include<bit ...
- P5149 会议座位(逆序对 离散化 hash 归并排序)
题目链接:会议座位 - 洛谷 题目背景 话说校长最近很喜欢召开全校教职工大会,让老师们强行听他装逼 题目描述 现在校长在校园网上公布了一份座位表,n 位老师从左到右依次排成一行.老师们都对这个座位很满 ...
- 【洛谷】P5149 会议座位
题目地址: https://www.luogu.com.cn/problem/P5149 题目背景: 话说校长最近很喜欢召开全校教职工大会,让老师们强行听他装逼 题目描述: 现在校长在校园网上公布了一 ...
- 洛谷 P5149 会议座位(树状数组+Trie)
题目是一道求逆序对的题目,但是我们先要将每一个名字转化为数字再进行计算 求逆序对的个数用树状数组或归并即可 题目有个坑点,名字包含大小写字母,所以字典树需要开大一点 #include <iost ...
最新文章
- 操作系统中进程并发运行的过程_三种电磁流量计运行过程中常见故障解决详情!...
- ASP.NET环境下配置FCKEditor并上传图片及其它文件
- magento 给My Account,Log In,Contact Us链接增加nofollow标签
- 变态题大串烧:微软面试问题 -- 三.难题:这类题有一定难度,如果得不到答案,也不能说明什么...
- 爬取淘宝定价需要多久时间_如何对设计工作进行定价—停止收​​取时间并专注于价值
- uk码对照表_这份中外衣服鞋码尺寸对照表,请收好!
- excel文件导出相应数据统计内容
- OpenResty HelloWorld
- 技术人必备的学习工具
- 【matlab】在图中插入矩形(框or阴影)
- 连载:面向对象葵花宝典:思想、技巧与实践(32) - LSP原则
- 计算机与未来的教育阅读答案,作文:计算机与未来的教育
- 洛雪音乐助手 0.18.2 — 音乐下载工具
- PHP最高权限的获取
- mht转html转换器apk,MHT文件转换工具BitRecover MHT Converter
- UML图详解(九)包图
- cannot load facet kotlin
- Linux 网络唤醒
- 如何将VScode作成便携版,且设置环境与本地电脑相同(包含VScode扩展)
- 荣耀v20支持html,荣耀V20支持NFC功能吗 荣耀V20支持NFC刷公交吗?
热门文章
- Oracle 登陆数据库的方式
- ubuntu安装nvidia显卡驱动黑屏nvidia-smi黑屏-显卡故障
- VirtualBox安装macOS Big Sur
- 正则表达式中(RegExp)的字符和转译
- 腾讯云发布php项目,利用腾讯云服务器进行微校开放平台开发
- L1-030. 一帮一-PAT团体程序设计天梯赛GPLT
- python循环结构教学设计_Python程序设计 循环结构说课稿
- C4D阿诺德Arnold渲染器:C4DtoA mac版(支持c4d r23)
- 计算机网络安全凭据,账户为用户或计算机提供安全凭证,以便用户和计算机能够登录到网络,并拥有响应访 - 百科题库网...
- 微星主板 Ubuntu20.04安装以及配置