解题思路

此题就是在找逆序对,只不过数字换成了字符串。对此,设一个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】 会议座位【归并排序】相关推荐

  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. 洛谷-5149 会议座位

    题目描述 现在校长在校园网上公布了一份座位表,n位老师从左到右依次排成一行.老师们都对这个座位很满意. 然而到了开会时,校长不小心把座位表打乱了,老师们很不满.老师们并不在意自己的位置变了多少,但如果 ...

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

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

  7. P5149 会议座位

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

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

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

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

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

最新文章

  1. C/C++ 头文件 #pragma once vs #ifndef
  2. [转]C++结构体|类 内存对齐详解
  3. 借助axios的拦截器实现Vue.js中登陆状态校验的思路
  4. mysqladmin mysql,mysql,mysqladmin,mysqld之间的区别
  5. idea使用dababase tools时导出db2建表语句,索引显示错误
  6. python3-pandas 缺失数据的处理
  7. inception_Inception团队在Red Hat推出DevOps
  8. 轨迹跟踪_预描点寻找
  9. oracle的clob转换varchar2
  10. 动态规划--总体理解
  11. 3种方法实现Android按钮的点击事件,建议收藏!
  12. idea取消vim模式
  13. 写偏斜(Write Skew)和丢失更新(Lost Updates)区别
  14. 搜索引擎模块设计与实现——相关度搜索算法模块
  15. android 简单快速 倒计时动画
  16. listview距离顶端白边
  17. 怎么批量转换图片格式?这些方法帮助你一键转换
  18. 换脸新潮流:BIGO风靡全球的人脸风格迁移技术
  19. 今晚直播 |不诉离殇,图像分割打卡营正式毕业啦!
  20. 编码电位器c语言程序,360°编码电位器原理

热门文章

  1. pythondjangoweb典型模块开发实战 pdf下载_胡阳《Django企业开发实战高效Python Web框架指南》PDF及代码...
  2. wszystkie hoopery Buty Adidas Crazy BYW sklep
  3. 3dsmax顶点死活焊接不上的原因!
  4. 户外移动电源如何选择更安全?
  5. qt tab弹出特效_Nuke Studio 12(影视特效合成软件)中文版分享
  6. GetDC() ReleaseDC()引起的内存泄漏
  7. [NSSRound#8 Basic] MyPage
  8. HBuilder webapp实现消息推送
  9. Mysql RR级别下如何解决幻读
  10. vue的App.vue