P5149 会议座位

题意:

其实还是求逆序对数。

解法:

用离散化统计每个数,再用树状数组求逆序对。

CODE:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<map> using namespace std; #define LL long long
#define N 100010 struct Node {
int pos,val;
} a[N];
map<string,int> Hash;
char ch[10];
int tree[N],n,tag[N];
LL ans;
inline bool cmp(Node a,Node b) {
if(a.val == b.val)
return a.pos < b.pos;
return a.val < b.val;
}
inline int lowbit(int x) {
return x & (-x);
}
inline void add(int x) {
for( ; x <= n ; x += lowbit(x))
tree[x]++;
return;
}
inline int query(int x) {
int ans = 0;
for( ; x ; x -= lowbit(x))
ans += tree[x];
return ans;
} int main() {
scanf("%d",&n);
for(int i = 1 ; i <= n ; i++) {
scanf("%s",ch);
Hash[ch] = i;
}
for(int i = 1 ; i <= n ; i++) {
scanf("%s",ch);
a[i].pos = i;
a[i].val = Hash[ch];
}
sort(a + 1,a + n + 1,cmp);
for(int i = 1 ; i <= n ; i++)
tag[a[i].pos] = i;
for(int i = n ; i >= 1 ; i--) {
ans += query(tag[i]);
add(tag[i]);
}
printf("%lld \n",ans);
//system("pause");
return 0;
}

P5149 会议座位的更多相关文章

  1. DDD及相关概念

    领域:指一个具体的应用范围,比如电商.订票管理.会议管理等,实现某一领域的功能,与其对应的商业领域一致.譬如Contoso会议管理系统从两个方面来阐述(1)系统概览:销售会议座位.创建新会议[领域的活 ...

  2. ENode框架Conference案例分析系列之 - 业务简介

    前言 ENode是一个应用开发框架.通过ENode,我们可以方便的开发基于DDD+CQRS+EventSourcing+EDA架构的应用程序.之前我已经写了很多关于ENode的架构以及设计原理的文章, ...

  3. ENode框架Conference案例分析系列之 - 上下文划分和领域建模

    前面一片文章,我介绍了Conference案例的核心业务,为了方便后面的分析,我这里再列一下: 业务描述 Conference是这样一个系统,它提供了一个在线创建会议以及预订会议座位的平台.这个系统的 ...

  4. ENode框架Conference案例分析系列之 - 订单处理减库存的设计

    前言 前面的文章,我介绍了Conference案例的业务.上下文划分.领域模型.架构,以及代码整体流程.接下来想针对案例中一些重要的场景,分别做进一步的分析.本文想先介绍一下Conference案例的 ...

  5. ENode框架Conference案例分析系列之 - 事件溯源如何处理重构问题

    前言 本文可能对大多数不太了解ENode的朋友来说,理解起来比较费劲,这篇文章主要讲思路,而不是一上来就讲结果.我写文章,总是希望能把自己的思考过程尽量能表达出来,能让大家知道每一个设计背后的思考的东 ...

  6. 洛谷NOIp热身赛题解

    洛谷NOIp热身赛题解 A 最大差值 简单树状数组,维护区间和.区间平方和,方差按照给的公式算就行了 #include<bits/stdc++.h> #define il inline # ...

  7. luogu NOIp热身赛(2018-11-07)题解

    为什么前面的人都跑得那么快啊? QAQ T1:区间方差 题目大意:询问区间方差,支持单点修改 首先把方差的式子展开,得到 $$d = \frac{a_1 + ... a_n}{n} - \frac{a ...

  8. 事件溯源模式(Event Sourcing Pattern)

    此文翻译自msdn,侵删. 原文地址:https://msdn.microsoft.com/en-us/library/dn589792.aspx 本文介绍了一种有利于物化(materialize)领 ...

  9. CQRS之旅——旅程2(分解领域)

    旅程2:分解领域 设计停靠站点 "没有石头就没有拱门" --马可波罗 在本章中,我们将对Contoso会议管理系统进行一个高层次的概述.这将帮助您理解应用程序的结构.集成点以及应用 ...

随机推荐

  1. office2019激活码 最新各个版本激活码

    office2019专业版激活码 激活秘钥 一.office2019激活6月更新 [Key]:F4QWT-NMMKH-XPTV9-W9HFB-B4JCQ [剩余次数:900000+] office20 ...

  2. c#基础知识梳理(二)

    上期回顾 - https://www.cnblogs.com/liu-jinxin/p/10818256.html 一.变量 一个变量只不过是一个供程序操作的存储区的名字.在 C# 中,每个变量都有一 ...

  3. form表单详解

    form表单 form是一个复杂的系统标签,其内部又可包含很多的一些输入标签 例如input 输入文本标签  checkbox 多选标签等等 form表单有几个属性我们需要注意一下 1:action属 ...

  4. linux命令安装docker

    安装: 1.Docker要求CentOS系统的内核版本高于 3.10 ,通过 uname -r 命令查看你当前的内核版本是否支持安账docker 2.更新yum包:sudo yum update 3. ...

  5. iOS分类(category),类扩展(extension)—史上最全攻略

    背景: 在大型项目,企业级开发中多人同时维护同一个类,此时程序员A因为某项需求只想给当前类currentClass添加一个方法newMethod,那该怎么办呢? 最简单粗暴的方式是把newMethod ...

  6. iOS8中UIActionSheet弹出UIImagePickerController异常处理

    iOS8之后,UIActionSheet改父于UIAlertController.带来了一丢丢兼容性的问题. 比如在弹出的actionsheet中选择从相册选择图片或者拍照,之后弹出UIImagePi ...

  7. Linux终端彩色显示输出结果

    转义序列符 为了添加个人风格的彩色提示符,我们需要使用转义序列符.一个转义序列符是一个控制命令,它控制Shell执行某个特定的动作.一个转义序列符通常以 ESC开始,在Shell中被记录为" ...

  8. Codeforces Round #590 (Div. 3) 万恶的自己WAC

    C题:一道简单的C题卡了半天,我太菜了 题意:给你一个n*2的矩阵,每个位置有一个数字,对应一种管道,要求通道可不可以从左上通到右下 由提议可以看出,1,2对应的是直管道,3,4,5,6对应弯管道,只 ...

  9. opencv+python 添加文字 cv2.putText

    import cv2 img = cv2.imread('E:\\usb_test\\example\\yolov3\\rknn_emotion\\test_images\\llj5.jpg') fo ...

  10. Windows安全应急响应(一)

    入侵排查思路 检查账号安全 1.查看服务器是否有弱口令,远程管理端口是否对公网开放 2.查看服务器是否存在可以账号.新增账号 3.查看服务器是否存在隐藏账号.克隆账号检查方法:i.打开注册表,查看管理 ...