Description

你和你的伙伴正在筹备村里的万人宴,由于村子是长条形的,所有宾客将坐在一张超级长桌的一侧就餐。

正当筹备工作进行得火热朝天,你和你的伙伴发现一个严重问题:由于缺乏沟通,你俩各自制作了一张座位图发给各位宾客。你必须计算出有多少对宾客,他们在两份座位图中次序安排是不同的。

例如,对以下两份座位图:

A B C D E

B A D E C

有三对宾客(A,B),(C,D)和(C,E),他们在两份座位图中的次序不同。

Input

输入的第一行是一个整数N(1<=N<=100000),代表宾客的数量。接下来的两行分别代表两张座位图。每行由N个空格分隔的字符串组成,这些字符串代表宾客,宾客名互不相同,只包含字母,长度不超过5个字符。两张座位图上的宾客名单保证是一致的。

Output

输出一个整数,代表有多少对宾客被两份座位图安排了不同的次序。

Sample Input

输入1:
3
Frank Sam Billy
Sam Frank Billy

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

Sample Output

输出1:
1

输出2:
3

Data Constraint

1<=N<=100000

分析

题意简单:给定一个标准,让你求另一个序列的逆序对数

序列都是字符串形式,字符串哈希即可,这里我选择map(反正也能过)

然后用树状数组经典求法即可

#include <iostream>
#include <cstdio>
#include <map>
#include <cstring>
#include <string>
#define lowbit(x) x&-x
using namespace std;
typedef long long ll;
const int N=1e5+10;
ll t[N],ans;
int a[N];
map<string,int> h;
string c;
int n,cnt;void Add(int x) {for (;x<N;x+=lowbit(x)) t[x]++;
}ll Sum(int x) {ll ans=0;for (;x;x-=lowbit(x)) ans+=t[x];return ans;
}int main() {scanf("%d",&n);for (int i=1;i<=n;i++) {    cin>>c;h[c]=++cnt;}for (int i=1;i<=n;i++) {cin>>c;a[i]=h[c];}for (int i=n;i;i--)ans+=Sum(a[i]),Add(a[i]);printf("%lld",ans);return 0;
}

View Code

转载于:https://www.cnblogs.com/mastervan/p/11117918.html

[树状数组][哈希]JZOJ 3240 Seat相关推荐

  1. 【牛客 - 331E】炫酷划线(权值线段树,树状数组哈希,随机数)

    题干: 链接:https://ac.nowcoder.com/acm/contest/331/E 来源:牛客网 平面上有一个圆,圆环上按顺时针顺序分布着从1到n,一共n个点. 现在无聊的小希开始按某种 ...

  2. The Untended Antiquity (二维树状数组 哈希)

    题意: 3种操作 1 在左上角 (r1,c1).右下角 (r2,c2) 的矩形框上设置围墙 2 把左上角 (r1,c1).右下角 (r2,c2) 的矩形框上的围墙删掉 3 询问 (r1,c1) 能否不 ...

  3. HDU - 5658 CA Loves Palindromic(回文自动机/哈希+树状数组)

    题目链接:点击查看 题目大意:给出一个字符串 s ,接下来给出 m 个查询,每次查询的形式会给出一个 l 和 r ,问区间 [ l , r ] 内有多少个本质不同的回文子串 题目分析:因为查询的次数比 ...

  4. 【CF869E】The Untended Antiquity(哈希+二维树状数组)

    当覆盖两点的最小矩形不同时,一定不可达 这样的问题不难想到经典的二维树状数组+差分来支持二维区间覆盖+查询 对于覆盖操作 我们可以差分的给这个矩阵里加上一个编号 对于操墙操作 我们可以反着减去这个编号 ...

  5. JZOJ 3.10 1542——跑步(树状数组+模拟+排序/归并排序)

    题目描述 FJ觉得赛马很无聊,于是决定调查将赛牛作为一种运动的可能性.他安排了N(1 <= N <= 100,000)头奶牛来进行一个L圈的赛牛比赛,比赛在一个环形的长度为C的跑道上进行. ...

  6. [虚树][树状数组][lca] Jzoj P5908 开荒

    Description 题目背景: 尊者神高达作为一个萌新,在升级路上死亡无数次后被一只大黄叽带回了师门.他加入师门后发现有无穷无尽的师兄弟姐妹,这几天新副本开了,尊者神高达的师门作为一个 pve师门 ...

  7. [cdq分治][树状数组] Jzoj P4419 hole

    Description GFS打算去郊外建所别墅,享受生活,于是他耗费巨资买下了一块风水宝地,但令他震惊的是,一群DSJ对GFS的富贵生活深恶痛绝,决定打洞以搞破坏. 现在我们简化一下这个问题,在这片 ...

  8. 树状数组 | 1057

    用哈希,把push的数x作为下标给hashTable(实则不存在,直接用tree树状数组记录数据)+1,pop则是以最后一个数x作为下标-1 . 树状数组和其原理不再赘述,需要注意的是最后的二分搜索( ...

  9. js 数组 实现 完全树_算法和数据结构 | 树状数组(Binary Indexed Tree)

    本文来源于力扣圈子,作者:胡小旭.点击查看原文 力扣​leetcode-cn.com 树状数组或二叉索引树(英语:Binary Indexed Tree),又以其发明者命名为 Fenwick 树.其初 ...

最新文章

  1. [Android工具]安卓音乐下载软件,无损音乐FLAC音乐下载器
  2. 插入排序(含希尔排序)的C/C++实现
  3. 代码面试最常用的10大算法
  4. 浮动导航栏php源码,JQuery 浮动导航栏实现代码
  5. redis windows安装
  6. 数据结构知识点大汇总(六)
  7. Lettuce替换Jedis操作Redis缓存
  8. NetBeans Weekly News: #125-Nov 17,2010
  9. Linux:shell变量功能和Bash shell的操作环境
  10. E66 PC套件因多个USB的连接导致连接不上问题解决办法
  11. WPS简历模板的图标怎么修改_个人简历模板集锦,简历自我评价怎么写?
  12. UGNX1953~1980版本怎么测量重量
  13. es7新特性随堂笔记
  14. 电驴虚拟服务器常用端口选择,为何我的电驴端口映射成功还是Lowid?
  15. 混淆矩阵 灵敏度 特异度 阳性预测值 阴性预测值 阳性似然比 阴性似然比
  16. DES和RSA加密解密实例
  17. 【Linux】什么是链接文件及其分类
  18. Pytorch 查看模型参数
  19. VMware XP虚拟机使用主机socks5代理全局代理连接
  20. TDK优化 模块化思想 阿里巴巴矢量库 css文件引入顺序 外边距塌陷

热门文章

  1. 讨论一个比较有意思的业务需求
  2. JSON数据格式---JSON语法规则、JSON文件
  3. kail linux更新源、挂载
  4. Tips--Solidworks 2016绘制工程图时显示gtol.sym文件缺失的解决方法
  5. 一起来玩树莓派--解决官方docker源安装失败的问题
  6. 7-169 汉密尔顿回路 (25 分)
  7. Github客户端使用教程
  8. Linux+QT界面开发(含数据库)小结
  9. shell 如何避免误删目录
  10. mysql数据库之单表查询