Problem Link

简要题意

题目很清楚。

分析

定理

两个人中左边的人一直向右运动,和两人向中间走所用的

步数相同

证明

假设有两组人为 \(a_l , a_r , b_l , b_r (a_l < a_r , b_l < b_r)\)。

\(\textrm{I}.\) 当 \(a_r < b_l\)(两者互不相交) 时

如图:

显然成立。

$ \textrm{II}.$ 当 $a_l < b_l < a_r < b_r $(两者相交) 时

如图:

假设先走 \(a\),此时 \(ans += a_r - a_l\)。

再走 \(b\),此时 \(ans += b_r - b_l - 1\)(中间有一个 \(a_l\) 已经走完)。

最后 \(ans = (b_r - b_l) + (a_r - a_l) - 1\)。

再考虑将 \(a\) 两端走到 \(b\) 之间的情况(略,和上面的方法一样)。

$ \textrm{III}.$ 当 \(a_l < b_l < b_r < a_r\)(两者包含)时

略(并不难证和情况 \(2\) 证明方法一样)。

综上,证明得证。

此时题目就很简单了。

最终实现

那么就可以贪心的让区间短的先走就行了(因为先走小的,大的区间距离会减小;反之,则不行)。

那就只需要用树状数组记录其中的已消失的数,统计答案时减去区间已消失的数。

code

#include <bits/stdc++.h>

using namespace std;
using ll = long long ; const int N = 5e5 + 5 ; int n; struct REN{
int first,last;
int len;
bool operator<(const REN&x)const{return len<x.len;}
}p[N]; ll ans; struct FenwickTree{
private:
ll t[N<<1];
int lowbit(int x){return x&-x;}
public:
void add(int x,int val){for(;x<=n*2;x+=lowbit(x))t[x]+=val;}
ll ask(int x){ll ans=0;for(;x;x-=lowbit(x))ans+=t[x];return ans;}
}t; int main(){
scanf("%d",&n);
for(int i=1,x;i<=2*n;i++){
scanf("%d",&x);
if(!p[x].first)p[x].first=i;
else p[x].last=i;
p[x].len=p[x].last-p[x].first; // 记录区间长度和头和尾
} sort(p+1,p+n+1);//贪心 for(int i=1;i<=n;i++){
ans+=p[i].len-t.ask(p[i].last)+t.ask(p[i].first-1);//减去已经消失的
t.add(p[i].first,1);
t.add(p[i].last,1);// 记录这个人已经消失
}
printf("%lld",ans);
return 0;
}

Luna likes Love 题解的更多相关文章

  1. Codeforces Round #631 (Div. 1) B. Dreamoon Likes Sequences 题解(思维+求贡献)

    题目链接 题目大意 让你构造一个严格单调上升的数组a满足\(1<=a_1<a_2<....a_n<=d\) 而且要使得这个数组的异或前缀和也满足严格单调上升,求有多少个满足条件 ...

  2. Codeforces Round #631 div1C(或者div2E) Drazil Likes Heap 题解

    题目链接:https://codeforces.com/contest/1329/problem/C 或者:https://codeforces.com/contest/1330/problem/E ...

  3. HDU5597/BestCoder Round #66 (div.2) GTW likes function 打表欧拉函数

    GTW likes function      Memory Limit: 131072/131072 K (Java/Others) 问题描述 现在给出下列两个定义: f(x)=f_{0}(x)=\ ...

  4. HDU 5597 GTW likes function 打表

    GTW likes function 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5596 Description Now you are give ...

  5. HDU 5596 GTW likes gt 倒推

    GTW likes gt 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5596 Description Long long ago, there w ...

  6. GTW likes math(简单数学)

    GTW likes math  Accepts: 472  Submissions: 2140  Time Limit: 2000/1000 MS (Java/Others)  Memory Limi ...

  7. 洛谷P2891 Dining P1402 酒店之王【类二分图匹配】题解+代码

    洛谷P2891 Dining P1402 酒店之王[类二分图匹配]题解+代码 酒店之王 题目描述 XX酒店的老板想成为酒店之王,本着这种希望,第一步要将酒店变得人性化.由于很多来住店的旅客有自己喜好的 ...

  8. Educational Codeforces Round 13 A. Johny Likes Numbers 水题

    A. Johny Likes Numbers 题目连接: http://www.codeforces.com/contest/678/problem/A Description Johny likes ...

  9. 2016级算法第六次上机-G.ModricWang likes geometry

    1116 ModricWang likes geometry 思路 难题,非常考察几何知识,放在这里作为计算几何场次的最难的题. 原题地址 原版题解 代码

  10. Codeforces Round #177 (Div. 2) 题解

    [前言]咦?如今怎么流行打CF了?于是当一帮大爷在执着的打div 1的时候,我偷偷的在刷div 2.至于怎么决定场次嘛.一般我报一个数字A,随便再拉一个人选一个数字B.然后開始做第A^B场.假设认为机 ...

随机推荐

  1. Ansible的基本配置

    目录 定义主机和组 主机的定义 主机组的定于 主机组的嵌套 选择主机和组 匹配主机 使用通配符匹配 配置文件优先级 配置文件详解 配置文件段 配置文件参数说明 配置案例 1. 在节点上创建一个普通用户 ...

  2. 以二进制文件安装K8S之高可用部署架构

    在Kubernetes系统中,Master节点扮演着总控中心的角色,通过不间断地与各个工作节点(Node)通信来维护整个集群的健康工作状态,集群中各资源对象的状态则被保存在etcd数据库中. 在正式环 ...

  3. go词法作用域陷进

    问题 // 创建一些目录,再将目录删除 // 错误写法 var rmdirs []func() for _, dir := range tempDirs() { os.MkdirAll(dir, 07 ...

  4. ASP.NET XML序列化

    整理一下ASP.NET里面如何序列化实体为XML,获取解析XML内容为实体. 第一步要添加程序集引用,项目-->引用-->鼠标右键-->添加引用-->选择程序集-->Sy ...

  5. 有了这份Java面试中的葵花宝典,让你面试起飞!!!

    HashMap面试题 HashMap与HashTable的区别 1.HashMap线程不安全 HashTable 线程是安全的采用synchronized 2.HashMap允许存放key 为null ...

  6. 【Azure App Services】多次操作App Service伸缩实例遇见限制操作记录

    问题描述 多次操作App Services,进行实例数的变化.达到限制后遇见报错: 错误的具体描述为: { "status": "Failed", " ...

  7. 深入解析ASP.NET Core MVC应用的模块化设计[上篇]

    ASP.NET Core MVC的"模块化"设计使我们可以构成应用的基本单元Controller定义在任意的模块(程序集)中,并在运行时动态加载和卸载.这种为"飞行中的飞 ...

  8. 云计算 - 内容分发网络CDN技术与应用全解

    在这篇全面解析CDN的技术文章中,我们深入探讨了CDN的基础概念.核心架构.多样化产品和在不同行业中的应用案例.文章揭示了CDN技术如何优化内容分发,提升用户体验,并展望了CDN面临的挑战和未来发展趋 ...

  9. 探究WPF中文字模糊的问题:TextOptions的用法

    有网友问WPF中一些文字模糊是什么问题.之前我也没有认真思考过这个问题,只是大概知道和WPF的像素对齐(pixel snapping).抗锯齿(anti-aliasing)有关,通过设置附加属性Tex ...

  10. nest.sh 脚本 发布服务

    每次发布后端nest 直接执行一个脚本即可 给脚本赋值权限 chomd 777 nest.sh nest.sh 脚本 #!/bin/bash cd /root/gateway-study git pu ...