[NOIP2013]火柴排队

嘟嘟嘟

 

首先可以想到,最小距离一定是a中第 i 大的和b中第 i 大的在同一行。

然后先把a,b分别离散化,然后开一个标记数组,map[i]记录a中第 i 小的数在哪一个位置出现,然后对b数组处理一遍。

题中说交换次数,自然想到逆序对,于是我们对新的b数组求一遍逆序对就行了。

 1     #include<cstdio>
 2 #include<iostream>
 3 #include<algorithm>
 4 #include<cstring>
 5 #include<cmath>
 6 #include<cstdlib>
 7 #include<cctype>
 8 #include<stack>
 9 #include<queue>
10 #include<vector>
11 using namespace std;
12 #define enter puts("")
13 #define space putchar(' ')
14 #define Mem(a, x) memset(a, x, sizeof(a))
15 #define rg register
16 typedef long long ll;
17 typedef double db;
18 const int INF = 0x3f3f3f3f;
19 const db eps = 1e-8;
20 const ll mod = 99999997;
21 const int maxn = 1e5 + 5;
22 inline ll read()
23 {
24   ll ans = 0;
25   char ch = getchar(), las = ' ';
26   while(!isdigit(ch)) las = ch, ch = getchar();
27   while(isdigit(ch)) ans = (ans << 3) + (ans << 1) + ch - '0', ch = getchar();
28   if(las == '-') ans = -ans;
29   return ans;
30 }
31 inline void write(ll x)
32 {
33   if(x < 0) putchar('-'), x = -x;
34   if(x >= 10) write(x / 10);
35   putchar(x % 10 + '0');
36 }
37 
38 int n;
39 int a[maxn], b[maxn];
40 ll ta[maxn], tb[maxn], f[maxn];
41 ll c[maxn], sum = 0;
42 
43 int lowbit(int x)
44 {
45   return x & -x;
46 }
47 void add(int pos)
48 {
49   while(pos <= n)
50     {
51       c[pos]++;
52       pos += lowbit(pos);
53     }
54 }
55 ll query(int pos)
56 {
57   ll ret = 0;
58   while(pos)
59     {
60       ret += c[pos];
61       ret %= mod;
62       pos -= lowbit(pos);
63     }
64   return ret;
65 }
66 
67 int main()
68 {
69   n = read();
70   for(int i = 1; i <= n; ++i) a[i] = read(), ta[i] = a[i];
71   for(int i = 1; i <= n; ++i) b[i] = read(), tb[i] = b[i];
72   sort(ta + 1, ta + n + 1);
73   sort(tb + 1, tb + n + 1);
74   for(int i = 1; i <= n; ++i) a[i] = lower_bound(ta + 1, ta + n + 1, a[i]) - ta;
75   for(int i = 1; i <= n; ++i) b[i] = lower_bound(tb + 1, tb + n + 1, b[i]) - tb;
76   for(int i = 1; i <= n; ++i) f[a[i]] = i;
77   for(int i = 1; i <= n; ++i) b[i] = f[b[i]];
78   for(int i = n; i; --i)
79     {
80       sum += query(b[i]); sum %= mod;
81       add(b[i]);
82     }
83   write(sum); enter;
84   return 0;
85 }
View Code

 

转载于:https://www.cnblogs.com/mrclr/p/9720650.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365551.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2018秋季C语言学习总结

转载于:https://www.cnblogs.com/noacgnnolife/p/10413255.html

解决Charles手机安装SSL证书后,获取到的接口为unknown,且乱码问题

按照正常流程将Charles安装并设置代理后&#xff0c;手机添加完代理并安装SSL证书&#xff0c;尝试抓取接口时&#xff0c;获取到的接口为unknown且返回内容乱码&#xff0c;如下图所示 解决办法&#xff1a; 在Proxy-SSL Proxying Settings-SSL Proxying下添加想要抓取的服务地…

Sum of Even Numbers After Queries

Solution: 转载于:https://www.cnblogs.com/Julietma/p/10414394.html

Python学习week7-文件操作

1、文件IO常用操作 # 文件操作命令 2、打开操作open # open(file, moder, buffering-1, encodingNone, errorsNone, newlineNone, closefdTrue, openerNone) 创建并打开一个文件test&#xff0c;然后关闭&#xff1b;打开一个文件&#xff0c;返回一个文件对象&#xff08;流对…

风险定量分析工具 龙卷风图 决策树形图 蒙特卡洛模拟

龙卷风图&#xff1a;是项目管理中用于在风险识别和定性分析之后&#xff0c;进行定量风险分析的技术----敏感性分析技术中最常用的一种图表技术。 敏感性分析&#xff1a;敏感性分析有助于确定哪些风险对项目具有最大的潜在影响。它把所有其他不确定因素保持在基准值的条件下…

推土机:将JAXB对象映射到业务/域对象

Dozer是开放源代码&#xff08; Apache 2许可 &#xff09;“ Java Bean到Java Bean映射器&#xff0c;可将数据从一个对象递归复制到另一个对象”。 正如从其主页上的描述所描述的那样&#xff0c;它用于映射两个JavaBeans实例&#xff0c;以在实例之间进行自动数据复制。 尽管…

openssl不是内部或外部命令_OpenSSL新架构蓝图

概述日前OpenSSL官网公布了未来OpenSSL的架构蓝图。作为战略性的架构目标&#xff0c;需要大量的版本迭代本文档概述了OpenSSL战略架构。它需要多个版本的迭代从目前最新的版本1.1开始直到3.0甚至是4.0最终实现。由于版本架构变动非常大&#xff0c;涉及大量的变化和迭代&#…

休眠事实:始终检查Criteria API SQL查询

Criteria API对于动态构建查询非常有用&#xff0c;但这是我使用它的唯一用例。 每当您有一个带有N个过滤器且可以以任意M个组合到达的UI时&#xff0c;都有一个API动态构造查询是有意义的&#xff0c;因为串联字符串始终是我所不愿使用的路径。 问题是&#xff0c;您是否知道…

treegrid,可以展开的jqgrid树

效果图 html部分 <div class"padding20 bgWhite marginTop20"> <div class"cus-grid row" id"grid-wrap"> <div class"col-lg-12"> <table id"list2"></table> …

winfrom软件开发汽车测试_ETci — 全自动软件测试调度(持续集成)平台

ETci 提供了编译- 测试- 发布解决方案&#xff0c;包括&#xff1a;自动提取配置库代码进行自动构建, 自动调度静态测试工具(如QAC)进行静态测试&#xff0c;自动调度单元测试工具(如Tessy)开展动态测试&#xff0c;自动调度HIL 自动化测试系统等。使得开发、测试团队在软件开发…

在POJO中使用ThreadLocal的Java嵌套事务

大多数嵌套事务是使用EJB实现的&#xff0c;现在我们尝试在POJO上实现嵌套事务。 在这里&#xff0c;我们使用了ThreadLocal的功能。 了解嵌套事务 事务可以嵌套在另一个内部。 因此&#xff0c;内部事务或外部事务可以回滚或提交&#xff0c;而不会影响其他事务。 创建新事务…

HTML存储详解

和大家一起先来了解一下H5之前的存储方式&#xff1a; cookies的诞生&#xff1a; http请求头上带着数据大小只能为4K主Domain的污染 下面是百度的一些Cookies HTTP中带√的表示&#xff0c;只能被服务器端修改的数据&#xff0c;一般用来存储身份验证等信息 cookies造成了…

springboot 工程启动报错之Consider defining a bean of type ‘XXX’ in your configuration.

一、前言&#xff1a; 使用springboot自动注入的方式搭建好了工程&#xff0c;结果启动的时候报错了&#xff01;&#xff01;&#xff01;&#xff0c;错误如下图&#xff1a; Description:Field userEntityMapper in com.xxx.xxx.service.UserService required a bean of typ…

java 自定义报表_灵活数据分析 | 自定义数据分析_集力数据系统平台_Java报表系统软件...

灵活数据分析集力数据系统数据分析是立足于让终端用户即使不懂专业计算机技术也能即时定义报表和分析数据的工具。用户只需关心业务需要&#xff0c;无需关心技术实现&#xff0c;通过拖拖拽拽、点点选选即可轻松制作列表式报表、分组报表、交叉报表、自由报表、组合报表等并进…

(1-1)line-height的定义和行内框盒子模型

&#xff08;1-1&#xff09;line-height的定义和与行内框盒子模型的关系 一、line-height的定义 line-height的定义&#xff1a; 行高&#xff0c;又称为两基线的距离。默认基线对齐&#xff08;因为CSS所有*线&#xff1a;总之就是各种定义的线都是和基线对齐的&#xff09…

Java与本机代理–他们所做的强大功能

在安装代理之前应了解的内容以及它如何影响您的代码 在构建可伸缩的服务器端应用程序时&#xff0c;我们花费大量时间思考如何在生产中监视&#xff0c;操作和更新代码。 已经开发出一种新的工具来帮助Java和Scala开发人员做到这一点。 它们中的许多都是基于最强大的方法之一构…

pdf打印机安装程序_CAD快速出打印PDF格式文件

pdf最大的特点就是只能查看&#xff0c;不可编辑。我们肯定不能够直接给到客户CAD源文件&#xff0c;所以我们需要把CAD文件格式&#xff0c;转换成为PDF格式。PDF格式&#xff0c;比起CAD文件&#xff0c;能够更好的阅览CAD是不能够直接生成PDF格式的&#xff0c;所以我们需要…

javascript(1)

js是ajax/jquery/extjs的基础。 js的应用&#xff0c;比如百度地图网页版&#xff0c;用鼠标拖拽画面&#xff0c;然后画面会刷新&#xff0c;这就是用js实现的。 只要涉及到鼠标的响应&#xff0c;按键的响应都和js有关。 写网页版地图需要调用谷歌的api。 JavaScript所讲内容…

如何将html特殊字符编码转换成特殊字符_html十进制编码字符转回来

备注&#xff1a;有时候我们会莫名其妙遇到一些特殊字符&#xff1a; 这些字符在网页上能正常显示&#xff0c;但是在APP特殊情景并不识别这些字符&#xff1a; 如&#xff1a; 这个其实是单引号: 百度后发现&#xff0c;它其实是HTML特殊字符的十进制编码&#…

sap生产工单报工_【案例】MES系统助力亨通电缆车间生产效率提升25%

一、企业简介江苏亨通电力电缆有限公司是亨通集团旗下的一家重点高新技术企业&#xff0c;于2003年在上交所成功上市&#xff0c;属于上市公司的电力传输板块。公司目前已拥有超高压电力电缆、超高压海缆、中低压电力电缆、电气装备用电缆、特高压导线、电力光缆以及铜铝加工等…