Description

一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低。”问最少有几个人没有说真话(可能有相同的分数)

Input

第一行一个整数n,接下来n行每行两个整数,第i+1行的两个整数分别代表ai、bi

Output

一个整数,表示最少有几个人说谎

Sample Input

3
2 0
0 2
2 2

Sample Output

1

HINT

100%的数据满足: 1≤n≤100000   0≤ai、bi≤n

首先我们考虑一下,撒谎的人去哪了

然后经过周密的推理分析,可以发现,他们爱去哪去哪跟我们半毛钱关系没有

所以我们直接不管他,一开始把不符合条件的直接判掉

然后对于一个人暂时符合条件的人,可以发现它跟其他人的人物关系可以表示成这样

红色表示和我一样的,黄色表示比我弱的,蓝色表示比我强的

可以发现“和我一样的”这个区间一定是不交的

然后我们就相当于要找一些不交的区间使个组最多

用线段树维护一下即可

代码:

 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<map>
#define ls node<<1
#define rs node<<1|1
#define M 100010
using namespace std;
map<int,int>MP[M];
int n,cnt,ans;
int f[M],val[M<<];
struct point{int l,r,v;}a[M];
bool cmp(point a1,point a2) {
return a1.l<a2.l||(a1.l==a2.l&&a1.r<a2.r);
}
void insert(int node,int l,int r,int p,int v) {
val[node]=max(val[node],v);
if(l==r) return;
int mid=(l+r)/;
if(p<=mid) insert(ls,l,mid,p,v);
else insert(rs,mid+,r,p,v);
}
int query(int node,int l,int r,int l1,int r1) {
if(l1<=l&&r1>=r) return val[node];
int mid=(l+r)/,ans=;
if(l1<=mid) ans=max(ans,query(ls,l,mid,l1,r1));
if(r1>mid) ans=max(ans,query(rs,mid+,r,l1,r1));
return ans;
}
int main() {
scanf("%d",&n);
for(int i=,l,r;i<=n;i++) {
scanf("%d%d",&l,&r);l=l+,r=n-r;
if(l>r) continue;
if(!MP[l][r]) MP[l][r]=++cnt,f[cnt]++,a[cnt]=(point){l,r,};
else f[MP[l][r]]++;
}
for(int i=;i<=cnt;i++) a[i].v=min(f[i],a[i].r-a[i].l+);
sort(a+,a++cnt,cmp);
for(int i=;i<=cnt;i++) {
int t=;
if(a[i].l>) t=query(,,n,,a[i].l-);
insert(,,n,a[i].r,t+a[i].v);
ans=max(ans,t+a[i].v);
}
printf("%d\n",n-ans);
return ;
}

[BZOJ2298]problem a的更多相关文章

  1. OI动态规划&&优化 简单学习笔记

    持续更新!! DP的难点主要分为两类,一类以状态设计为难点,一类以转移的优化为难点. DP的类型 序列DP [例题]BZOJ2298 problem a 数位DP 常用来统计或者查找一个区间满足条件的 ...

  2. 【BZOJ2298】[HAOI2011]problem a DP

    [BZOJ2298][HAOI2011]problem a Description 一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话(可能有相 ...

  3. BZOJ2298: [HAOI2011]problem a

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2298 题解:刚开始思考的方向错了...一直在想LIS什么的,又发现不合法的情况不好判断,真是个 ...

  4. BZOJ2298:[HAOI2011]problem a——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=2298 https://www.luogu.org/problemnew/show/P2519 一次 ...

  5. [BZOJ2298] [HAOI2011] problem a (dp)

    Description 一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话(可能有相同的分数) Input 第一行一个整数n,接下来n行每行两个 ...

  6. 【BZOJ2298】[HAOI2011]problem a

    题解: 虽然也是个可以过得做法...但又没有挖掘到最简单的做法... 正解是发现这个东西等价于求不相交区间个数 直接按照右端点排序,然后贪心就可以O(n)过了 而我的做法是按照a排序(其实我是在模拟这 ...

  7. BZOJ2298: [HAOI2011]problem a(带权区间覆盖DP)

    Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1747  Solved: 876[Submit][Status][Discuss] Descripti ...

  8. BZOJ2298 [HAOI2011]problem a 【dp】

    题目 一次考试共有n个人参加,第i个人说:"有ai个人分数比我高,bi个人分数比我低."问最少有几个人没有说真话(可能有相同的分数) 输入格式 第一行一个整数n,接下来n行每行两个 ...

  9. 【动态规划】bzoj2298: [HAOI2011]problem a

    建模超级妙…… Description 一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话(可能有相同的分数) Input 第一行一个整数n,接 ...

随机推荐

  1. 原码、补码,反码以及JAVA中数值采用哪种码表示

    原码.补码,反码以及JAVA中数值采用哪种码表示 1.原码定义(摘自百度百科):一种计算机中对数字的二进制定点表示方法,原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位 ...

  2. poj2109 【贪心】

    Current work in cryptography involves (among other things) large prime numbers and computing powers ...

  3. webpack应用案例之美团app

    记录自己的创建步骤,且对自己的错误进行纠正分析.

  4. 个人小爱好:Operating System: three easy pieces—第6章第3小节问题2#进程间的切换

    问题2#:进程间的切换 直接执行的下一个问题是如何实现进程的切换.进程的切换按理说是挺简单的,对吧?不就是决定哪一个进程应该停止,哪一进程应该开始而已,才多大点事情啊?但,事实上这还真的有点棘手:尤其 ...

  5. word2vec:将bin转换为txt

    转自:https://blog.csdn.net/u011684265/article/details/78024064 from gensim.models import word2vec mode ...

  6. python 爬虫-1

    买了本书在自学,我也不知道自己能学到什么地步,反正不用这个找工作,纯属爱好,有可能之后就会放弃 233333333.... 先来一个特别简单点的:将百度搜索主页  扒下来,并保存到一个文件里面 fir ...

  7. LCA Tarjan方法

    LCA Tarjan方法 不得不说,高中生好厉害,OI大佬,感觉上个大学好憋屈啊! 说多了都是眼泪 链接拿去:http://www.cnblogs.com/JVxie/p/4854719.html

  8. 谈谈 ArrayList 和 LinkedList 的区别

    ArrayList: 基于动态数组的数据结构:删除和插入操作每次都要改变数组的长短,比较消耗性能,但是查询会比较快 除非插入和删除的位置都在表末尾,否则代码开销会很大,因为里面需要数组的移动. Lin ...

  9. java中的key事件监听机制

    package com.at221; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import javax.sw ...

  10. 安装zabbix时PHP ldap Warning

    一.如果是源码编译 [root@DaMoWang php-]# / opcache.a opcache.so # 出现告警是因为ldap模块不存在,须要编译生成此模块并重新加载 到源码包的解压目录下, ...