又看题解了,这样下去要跪啊QAQ

原题:

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

1≤n≤100000   0≤ai、bi≤n

想不出来做法,就去看题解了

首先这个题意很有问题,"有ai个人分数比我高"是严格的,有人这么说说明他的排名区间在l=bi+1到r=n-ai之间,且l到r这个区间中所有人的成绩都是一样的

然后有个问题就是如果供词区间在l到r中的人不够r-l+1怎么办?根据鸽巢原理应该可以证明,这样的情况一定会有人说谎,说谎的人填补整下的即可

那么完全相同的区间就可以合并,权值为供词为这个区间的人数,然后求一个线段中不相交的区间覆盖

因为n很大,所以可以用邻接表,先以r第一优先级l第二优先级排序,然后按排好的序扫一下边,如果l[i]和l[i+1],r[i]和r[i+1]完全相同就不加入链表中,给上一个加入的边权值++,否则链表中插入一条权值为1的边

(其实有更好的实现方式,这个不难想(不是用map= =

最后dp,f[r]=max{f[l-1]+e[i].v} <- 区间覆盖DP

又看题解了,这样下去要跪啊QAQ

代码:

 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
int rd(){int z=,mk=; char ch=getchar();
while(ch<''||ch>''){if(ch=='-')mk=-; ch=getchar();}
while(ch>=''&&ch<=''){z=(z<<)+(z<<)+ch-''; ch=getchar();}
return z*mk;
}
struct dcd{int x,y;}a[];
struct ddd{int nxt,y,v;}e[]; int lk[],ltp=;
inline void ist(int x,int y,int z){ e[++ltp].nxt=lk[x],lk[x]=ltp,e[ltp].y=y,e[ltp].v=z;}
int n;
int f[];
bool cmp(dcd x,dcd y){ return (x.y==y.y)?(x.x<y.x):x.y<y.y;}
int main(){//freopen("ddd.in","r",stdin);
cin>>n;
for(int i=;i<=n;++i){
a[i].x=rd()+,a[i].y=n-rd();
//if(a[i].x==a[i].y){ cout<<a[i].x<<endl;}
}
sort(a+,a+n+,cmp);
int bwl;
for(int i=;i<=n;++i){
bwl=;
while(a[i+].x==a[i].x && a[i+].y==a[i].y) ++bwl,++i;
ist(a[i].y,a[i].x-,min(bwl,a[i].y-a[i].x+));
}
for(int i=;i<=n;++i){
f[i]=f[i-];
for(int j=lk[i];j;j=e[j].nxt) f[i]=max(f[i],f[e[j].y]+e[j].v);
}
cout<<n-f[n]<<endl;
return ;
}

【HAOI2011】problem a的更多相关文章

  1. 【BZOJ2301】【HAOI2011】Problem B(莫比乌斯反演)

    [BZOJ2301][HAOI2011]Problem B(莫比乌斯反演) 题面 Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y ...

  2. 清北学堂例题 LUOGU2519 【HAOI2011】PROBLEM A

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

  3. 【BZOJ2301】【HAOI2011】Problem b [莫比乌斯反演]

    Problem b Time Limit: 50 Sec  Memory Limit: 256 MB[Submit][Status][Discuss] Description 对于给出的n个询问,每次 ...

  4. BZOJ 2301 【HAOI2011】 Problem b

    Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. Input 第一行一个整数 ...

  5. 【HAOI2011】problem b

    数论好劲啊 原题: 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. 1≤n≤50000,1≤a≤b ...

  6. 清北学堂例题 LUOGU2523【HAOI2011】problem c

    题目描述 给n个人安排座位,先给每个人一个1~n的编号,设第i个人的编号为ai(不同人的编号可以相同),接着从第一个人开始,大家依次入座,第i个人来了以后尝试坐到ai,如果ai被占据了,就尝试ai+1 ...

  7. 【题解】【HAOI2011】Problem b

    \(Luogu2522\) 题目大意:求下面式子的值: \[\sum_{i=x}^n\sum_{j=y}^m[\gcd(i,j)=k] \] 这个东西直接求不好求,考虑差分,从\([1,n]\)的范围 ...

  8. 【BZOJ2998】Problem A(动态规划)

    [BZOJ2998]Problem A(动态规划) 题面 BZOJ 题解 一个人的成绩范围可以确定为一个区间 这样就变成了 选择若干区间,不重合, 每个区间有个权值,求最大权值和 这样就可直接\(dp ...

  9. 【HAOI2011】向量

    [题目描述] 给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,问你能不能拼出另一个 ...

随机推荐

  1. UVA 11990 `Dynamic'' Inversion CDQ分治, 归并排序, 树状数组, 尺取法, 三偏序统计 难度: 2

    题目 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...

  2. html5游戏之Box2d物理引擎集成

    前面两章我们已经研究了如何使用Box2d来模拟游戏世界,这一章就把所有的东西拼凑在一起,最终完成我们的游戏. 一.定义物体 典型的物体: {type:'ground',name:'dirt',x:50 ...

  3. POST提交表单时EnType设置问题

    POST提交表单时EnType设置问题 首先知道enctype这个属性管理的是表单的MIME编码.共有三个值可选: 1.application/x-www-form-urlencoded 2.mult ...

  4. react全家桶-服务端与客户端配置

    全家桶内装有: react - github react-router - github redux - github react-redux - github react-router-redux ...

  5. java编写本月日历

    代码如下: import java.time.*; public class Main { public static void main(String arg[]){ LocalDate date ...

  6. error: illegal character '\ufeff' 的解决方案

    今天使用scalac 命令编译scala文件的时候,出错了,出现如下错误提示:

  7. windows下安装cygwin及配置(转)

    reference:https://cygwin.com/install.html 对比:MinGW vs. CygWin    https://www.cnblogs.com/findumars/p ...

  8. centos7安装配置tomcat

    第一步:下载Tomcat8压缩包 进入 http://tomcat.apache.org/download-80.cgi 下载tar.gz压缩包 第二步:用ftp工具把压缩包上传到/home/data ...

  9. 如何正确认识Docker Kubernetes 和 Apache Mesos

    参考链接: http://geek.csdn.net/news/detail/229382

  10. L325 如何睡觉

    Getting enough shut-eye is one of life’s biggest challenges. It’s recommended that the average perso ...