#树状数组#洛谷 5677 [GZOI2017]配对统计
分析
考虑处理出所有右端点的能够匹配的左端点,然后用树状数组离线查询
代码
#include <cstdio>
#include <cctype>
#include <vector>
#include <algorithm>
#define rr register
using namespace std;
const int N=300011; vector<int>K[N];
struct rec{int w,rk;}a[N];
struct three{int l,r,rk;}q[N];
int c[N],n,m,ans[N]; long long Ans;
inline signed iut(){
rr int ans=0; rr char c=getchar();
while (!isdigit(c)) c=getchar();
while (isdigit(c)) ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();
return ans;
}
inline void update(int x,int y){
for (;x<=n;x+=-x&x) c[x]+=y;
}
inline signed query(int x){
rr int ans=0;
for (;x;x-=-x&x) ans+=c[x];
return ans;
}
inline void add(int x,int y){
if (x>y) x^=y,y^=x,x^=y;
K[y].push_back(x);
}
bool cmp1(rec x,rec y){return x.w<y.w;}
bool cmp2(three x,three y){return x.r<y.r;}
signed main(){
n=iut(); m=iut();
for (rr int i=1;i<=n;++i)
a[i]=(rec){iut(),i};
sort(a+1,a+1+n,cmp1);
for (rr int i=1;i<=n;++i){
rr int t=2e9;
if (i>1&&a[i].w-a[i-1].w<t) t=a[i].w-a[i-1].w;
if (i<n&&a[i+1].w-a[i].w<t) t=a[i+1].w-a[i].w;
if (i>1&&a[i].w-a[i-1].w==t) add(a[i].rk,a[i-1].rk);
if (i<n&&a[i+1].w-a[i].w==t) add(a[i].rk,a[i+1].rk);
}
for (rr int i=1;i<=m;++i) q[i]=(three){iut(),iut(),i};
sort(q+1,q+1+m,cmp2);
for (rr int i=1,j=1;i<=m;++i){
for (;j<=q[i].r;++j){
rr int len=K[j].size();
for (rr int o=0;o<len;++o)
update(K[j][o],1);
}
ans[q[i].rk]=query(q[i].r)-query(q[i].l-1);
}
for (rr int i=1;i<=m;++i) Ans+=1ll*ans[i]*i;
return !printf("%lld",Ans);
}
#树状数组#洛谷 5677 [GZOI2017]配对统计的更多相关文章
- 树状数组 洛谷P3616 富金森林公园
P3616 富金森林公园 题目描述 博艾的富金森林公园里有一个长长的富金山脉,山脉是由一块块巨石并列构成的,编号从1到N.每一个巨石有一个海拔高度.而这个山脉又在一个盆地中,盆地里可能会积水,积水也有 ...
- P3374 【模板】树状数组 1--洛谷luogu
题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某一个数加上x 2.求出某区间每一个数的和 输入输出格式 输入格式: 第一行包含两个整数N.M,分别表示该数列数字的个数和操作的总个数. ...
- P3368 【模板】树状数组 2--洛谷luogu
题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数数加上x 2.求出某一个数的值 输入输出格式 输入格式: 第一行包含两个整数N.M,分别表示该数列数字的个数和操作的总个数. ...
- POJ 2481 Cows(树状数组)
Cows Time Limit: 3000MS Memory L ...
- BZOJ2141:排队(分块,树状数组)
Description 排排坐,吃果果,生果甜嗦嗦,大家笑呵呵.你一个,我一个,大的分给你,小的留给我,吃完果果唱支歌,大家 乐和和.红星幼儿园的小朋友们排起了长长地队伍,准备吃果果.不过因为小朋友们 ...
- 洛谷P2617 Dynamic Ranking(主席树,树套树,树状数组)
洛谷题目传送门 YCB巨佬对此题有详细的讲解.%YCB%请点这里 思路分析 不能套用静态主席树的方法了.因为的\(N\)个线段树相互纠缠,一旦改了一个点,整个主席树统统都要改一遍...... 话说我真 ...
- [洛谷P1198/BZOJ1012][JSOI2008] 最大数 - 树状数组/线段树?
其实已经学了树状数组和线段树,然而懒得做题,所以至今没写多少博客 Description 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询当前数列中末尾L个数 ...
- 洛谷P3655 差分数组 树状数组
题目链接:https://www.luogu.org/problemnew/show/P3655 不一定对,仅供参考,不喜勿喷,不喜勿喷. 先copy洛谷P3368 [模板]树状数组 2 题解里面一位 ...
- 洛谷P5069 [Ynoi2015]纵使日薄西山(树状数组,set)
洛谷题目传送门 一血祭 向dllxl致敬! 算是YNOI中比较清新的吧,毕竟代码只有1.25k. 首先我们对着题意模拟,寻找一些思路. 每次选了一个最大的数后,它和它周围两个数都要减一.这样无论如何, ...
- BZOJ3262/洛谷P3810 陌上花开 分治 三维偏序 树状数组
原文链接http://www.cnblogs.com/zhouzhendong/p/8672131.html 题目传送门 - BZOJ3262 题目传送门 - 洛谷P3810 题意 有$n$个元素,第 ...
随机推荐
- postgresql中的json和jsonb
1. 简介postgresql9.3以后,我们可以将表的字段类型设置为json.同时,postgresql还提供了jsonb格式,jsonb是json的二进制形式.二者区别: postgresql9. ...
- linux基本命令--day02
目录树架构示意图 以下是对这些目录的解释: /bin: bin是Binary的缩写, 这个目录存放着最经常使用的命令. /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以 ...
- Windows开发环境如何启用Directory.Build.props版本号集中管理
每个产品一个根目录 Directory.Build.props的工作模式和NuGet.Config不同,Directory.Build.props不能继承.当dotnet restore工作的时候,会 ...
- DataGear数据可视化分析平台介绍
DataGear 是一款开源免费的数据可视化分析平台,自由制作任何您想要的数据看板,支持接入SQL.CSV.Excel.HTTP接口.JSON等多种数据源. 系统特点: 友好的数据源接入 支持运行时接 ...
- 【Azure 存储服务】关于中国区Azure Storage Account 存储账号服务误删除后的恢复问题
问题描述 在Azure上,如果需要恢复之前删除的存储账户(Storage Account), 有什么办法呢? 问题解答 Azure 现在推出了自主恢复已删除的存储账号的功能,具体步骤如下: 第一步: ...
- mysql-批量修改表的主键id,修改成联合主键
1.sql脚本 一. 通过sql脚本,查出所有表的功能,并编写插入修改的联合主键,sql select concat('ALTER table ', TABLE_NAME, ' DROP PRIMAR ...
- Jmeter json断言的使用
1 添加方式:取样器右键->添加->断言->JSON断言 作用:使用JSON表达式提取实际数据与预期进行比较 2首先我们来了解下断言组件的各个功能: Asset JSON Pat ...
- Netty笔记(4) - 对Http和WebSocket的支持、心跳检测机制
对HTTP的支持 服务端代码: 向 PipeLine中 注册 HttpServerCodec Http协议的编码解码一体的Handler 处理Http请求 封装Http响应 public class ...
- CefSharp 开发触屏终端遇到的问题记录
一.背景 最开始准备使用的 Chromely 做一个终端机项目,本来以为挺顺利的一个事情折腾了两天半.由于无法直接控制窗体的属性,最后还是切换到 .NET Framework 4.8 + CefSha ...
- MySQL之过滤条件
[一]筛选过滤条件 [1]查询语句 -- 查询当前表中的指定字段的数据 select id,name from emp where id > 3; [2]创建数据表 create databas ...