【洛谷 P5149】 会议座位【归并排序】
解题思路
此题就是在找逆序对,只不过数字换成了字符串。对此,设一个map<string,int>wmap<string,int>wmap<string,int>w即可,映射的数字是字符串的编号。
然后用归并排序找逆序对就行了。。
代码
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<iomanip>
#include<cstring>
#include<cmath>
#include<map>
#define ll long long
using namespace std;map<string,int>w;int n;
string s;
long long ans,a[100010];void work(int l,int mid ,int r){int i=l,j=mid+1,b[100010],t=l;while(i<=mid&&j<=r){if(a[j]>=a[i])b[t++]=a[i++];if(a[i]>a[j])b[t++]=a[j++],ans+=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];
} void gsort(int l,int r){if(l==r)return;int mid=(l+r)/2;gsort(l,mid);gsort(mid+1,r);work(l,mid,r);
}int main(){scanf("%d",&n);for(int i=1;i<=n;i++){cin>>s;w[s]=i;}for(int i=1;i<=n;i++){cin>>s;a[w[s]]=i;}gsort(1,n);printf("%lld",ans);
}
【洛谷 P5149】 会议座位【归并排序】相关推荐
- 洛谷 P5149 会议座位
洛谷 P5149 会议座位 Description 现在校长在校园网上公布了一份座位表,n位老师从左到右依次排成一行.老师们都对这个座位很满意. 然而到了开会时,校长不小心把座位表打乱了,老师们很不满 ...
- 洛谷P5149——会议座位【字典树 + 逆序对】
洛谷P5149--会议座位 大致思路:我们先用字典树把单词存起来,在每个单词的末尾节点给这个单词按照出现顺序标号,然后在查找的过程中,把其出现顺序用一个数组一次存起来,然后求这个数组的逆序对即可. # ...
- 洛谷P5149 会议座位
P5149 会议座位 字符串哈希 + 归并排序 代码 #include<bits/stdc++.h> using namespace std; const int N = 1e5 + 10 ...
- 洛谷 P5149 会议座位(树状数组+Trie)
题目是一道求逆序对的题目,但是我们先要将每一个名字转化为数字再进行计算 求逆序对的个数用树状数组或归并即可 题目有个坑点,名字包含大小写字母,所以字典树需要开大一点 #include <iost ...
- 洛谷-5149 会议座位
题目描述 现在校长在校园网上公布了一份座位表,n位老师从左到右依次排成一行.老师们都对这个座位很满意. 然而到了开会时,校长不小心把座位表打乱了,老师们很不满.老师们并不在意自己的位置变了多少,但如果 ...
- [Luogu] 逆序数P5149 会议座位
P5149 会议座位 目录 前言 归并排序求逆序数 tire+树状数组求 逆序数 前言 这题的标签 有trie感觉奇奇怪怪的 没想到trie树还可以搞这个 牛逼66 归并排序求逆序数 #include ...
- P5149 会议座位
P5149 会议座位 题意: 其实还是求逆序对数. 解法: 用离散化统计每个数,再用树状数组求逆序对. CODE: #include<iostream> #include<cstdi ...
- P5149 会议座位(逆序对)
P5149 会议座位(逆序对) 看到本题有字典树就来了,结果直接map下,也可做. 思路1:map,然后上BIT. 思路2:字典树实现类map,然后上BIT. code #include<bit ...
- P5149 会议座位(逆序对 离散化 hash 归并排序)
题目链接:会议座位 - 洛谷 题目背景 话说校长最近很喜欢召开全校教职工大会,让老师们强行听他装逼 题目描述 现在校长在校园网上公布了一份座位表,n 位老师从左到右依次排成一行.老师们都对这个座位很满 ...
最新文章
- C/C++ 头文件 #pragma once vs #ifndef
- [转]C++结构体|类 内存对齐详解
- 借助axios的拦截器实现Vue.js中登陆状态校验的思路
- mysqladmin mysql,mysql,mysqladmin,mysqld之间的区别
- idea使用dababase tools时导出db2建表语句,索引显示错误
- python3-pandas 缺失数据的处理
- inception_Inception团队在Red Hat推出DevOps
- 轨迹跟踪_预描点寻找
- oracle的clob转换varchar2
- 动态规划--总体理解
- 3种方法实现Android按钮的点击事件,建议收藏!
- idea取消vim模式
- 写偏斜(Write Skew)和丢失更新(Lost Updates)区别
- 搜索引擎模块设计与实现——相关度搜索算法模块
- android 简单快速 倒计时动画
- listview距离顶端白边
- 怎么批量转换图片格式?这些方法帮助你一键转换
- 换脸新潮流:BIGO风靡全球的人脸风格迁移技术
- 今晚直播 |不诉离殇,图像分割打卡营正式毕业啦!
- 编码电位器c语言程序,360°编码电位器原理
热门文章
- pythondjangoweb典型模块开发实战 pdf下载_胡阳《Django企业开发实战高效Python Web框架指南》PDF及代码...
- wszystkie hoopery Buty Adidas Crazy BYW sklep
- 3dsmax顶点死活焊接不上的原因!
- 户外移动电源如何选择更安全?
- qt tab弹出特效_Nuke Studio 12(影视特效合成软件)中文版分享
- GetDC() ReleaseDC()引起的内存泄漏
- [NSSRound#8 Basic] MyPage
- HBuilder webapp实现消息推送
- Mysql RR级别下如何解决幻读
- vue的App.vue