发现每一次 $[b[i]+1,n-a[i]]$ 这个区间的分数必须相同,否则不合法.
而一个相同的区间 $[l,r]$ 最多只能出现区间长度次.
于是,就得到了一个 $dp:$ 将每一种区间的出现次数看作是价值,要选出若干个互不相交的区间使得价值最大.
这个直接用树状数组优化 dp 跑一下就行了~

#include <bits/stdc++.h>
#define N 100004
#define setIO(s) freopen(s".in","r",stdin)
using namespace std;
int n,C[N],f[N];
struct P
{
int l,r,v;
P(int l=0,int r=0,int v=0):l(l),r(r),v(v){}
}p[N],g[N];
bool cmp(P a,P b)
{
return a.l==b.l?a.r<b.r:a.l<b.l;
}
bool cmp2(P a,P b)
{
return a.r<b.r;
}
int lowbit(int t)
{
return t&(-t);
}
void update(int x,int d)
{
for(;x<N;x+=lowbit(x)) C[x]=max(C[x], d);
}
int query(int x)
{
int tmp=0;
for(;x>0;x-=lowbit(x)) tmp=max(tmp, C[x]);
return tmp;
}
int main()
{
int i,j,tot=0;
// setIO("input");
scanf("%d",&n);
for(i=1;i<=n;++i)
{
int a,b,l,r;
scanf("%d%d",&a,&b);
l=b+1,r=n-a;
if(l<=r)
{
p[++tot]=P(l,r,0);
}
}
sort(p+1,p+1+tot,cmp);
int pp=0,mx=0;
for(i=1;i<=tot;i=j)
{
++pp;
g[pp]=p[i];
for(j=i;j<=tot&&p[j].l==p[i].l&&p[j].r==p[i].r;++j)
{
++g[pp].v;
}
g[pp].v=min(g[pp].v, g[pp].r-g[pp].l+1);
}
sort(g+1,g+1+pp,cmp2);
for(i=1;i<=pp;++i)
{
// printf("%d %d %d\n",g[i].l,g[i].r,g[i].v);
f[i]=g[i].v+query(g[i].l-1);
update(g[i].r, f[i]);
mx=max(mx, f[i]);
}
printf("%d\n",n-query(n));
return 0;
}

  

最新文章

  1. window下使用Redis Cluster部署Redis集群
  2. angularJs模块ui-router之路由控制
  3. jquery 页面加载时获取图片高度
  4. iOS开发中的远程推送实现(最新,支持iOS9)
  5. microsoft azure 速度测试网址
  6. C++ string的常用功能
  7. SharePoint 101 Code Samples are now available
  8. A Tour of Go Channels
  9. CentOS 6.5 + Nginx 1.8.0 + PHP 5.6(with PHP-FPM) 负载均衡源码安装 之 (一)Nginx安装篇
  10. uvalive 3708 Graveyard
  11. Java9相关资料(JShell简易教程等)
  12. 临时关闭Mac SIP系统完整性保护机制
  13. 数据保存策略(Retention Policies)
  14. 一、学习起步vue——安装
  15. VueJs 监听 window.resize 方法
  16. 每天一点Linux系列之—vim
  17. 【转】关于Log4j
  18. APK方法数超过65535及MultiDex解决方案
  19. [转]一步一步玩控件:自定义TabControl——从山寨Safari开始
  20. oozie4.3.0+sqoop1.4.6实现mysql到hive的增量抽取

热门文章

  1. Kubernetes---Service(SVC)服务--ingress api
  2. LC 1. Two Sum
  3. 星舟平台的使用(GIT、spring Boot 的使用以及swagger组件的使用)
  4. java实现4种内部排序
  5. PM2 部署 nodejs API项目
  6. VUE实现简单的全选/全不选
  7. JS 实现继承的方法 ES6 and ES5
  8. 【6】Zookeeper脚本及API
  9. Dart中的匿名方法与自执行方法
  10. CAFFE(四):Ubuntu 下安装jupyter notebook