题解:

虽然也是个可以过得做法。。。但又没有挖掘到最简单的做法。。。

正解是发现这个东西等价于求不相交区间个数

直接按照右端点排序,然后贪心就可以O(n)过了

而我的做法是按照a排序(其实我是在模拟这个过程但我没有发现他的本质。。。)

然后f[i][j]表示前i个,最大要求为j的最大值

然后用线段树来优化这个东西

一个地方存在的东西还要取个min

代码:

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define rint register int
  4. #define IL inline
  5. #define rep(i,h,t) for (rint i=h;i<=t;i++)
  6. #define dep(i,t,h) for (rint i=t;i>=h;i--)
  7. #define mid ((h+t)/2)
  8. const int N=2e5+;
  9. struct re{
  10. int a,b,c;
  11. }a[N],b[N];
  12. bool cmp(re x,re y)
  13. {
  14. return (x.a<y.a||(x.a==y.a&&x.b<y.b));
  15. }
  16. struct sgt{
  17. int v[N*];
  18. int find(int x,int h,int t,int h1,int t1)
  19. {
  20. if (t1<h1) return();
  21. if (h1<=h&&t<=t1) return(v[x]);
  22. int ans=;
  23. if (h1<=mid) ans=find(x*,h,mid,h1,t1);
  24. if (mid<t1) ans=max(ans,find(x*+,mid+,t,h1,t1));
  25. return(ans);
  26. }
  27. void change(int x,int h,int t,int pos,int k)
  28. {
  29. if (h==t)
  30. {
  31. v[x]=max(v[x],k); return;
  32. }
  33. if (pos<=mid) change(x*,h,mid,pos,k);
  34. else change(x*+,mid+,t,pos,k);
  35. v[x]=max(v[x*],v[x*+]);
  36. }
  37. }S;
  38. int main()
  39. {
  40. freopen("1.in","r",stdin);
  41. freopen("1.out","w",stdout);
  42. ios::sync_with_stdio(false);
  43. int n;
  44. cin>>n;
  45. rep(i,,n) cin>>a[i].a>>a[i].b;
  46. sort(a+,a+n+,cmp);
  47. int l=;
  48. rep(i,,n)
  49. if (a[i].a==a[i-].a&&a[i].b==a[i-].b)
  50. b[l].c++,b[l].c=min(b[l].c,n-a[i].a-a[i].b);
  51. else
  52. {
  53. b[++l].a=a[i].a; b[l].b=a[i].b; b[l].c=;
  54. }
  55. rep(i,,l)
  56. {
  57. int x=S.find(,,n,,b[i].a);
  58. S.change(,,n,n-b[i].b,x+b[i].c);
  59. }
  60. int ans=S.find(,,n,,n);
  61. cout<<n-ans<<endl;
  62. return ;
  63. }

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

  1. 【BZOJ2298】[HAOI2011]problem a DP

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

  2. 【BZOJ2302】[HAOI2011]Problem C(动态规划)

    [BZOJ2302][HAOI2011]Problem C(动态规划) 题面 BZOJ 洛谷 题解 首先如果\(m=0\)即没有特殊限制的话,那么就和这道题目基本上是一样的. 然而这题也有属于这题的性 ...

  3. 【bzoj2301】 HAOI2011—Problem b

    http://www.lydsy.com/JudgeOnline/problem.php?id=2301 (题目链接) 题意 给出${a,b,c,d,k}$,${n}$组询问,求$${\sum_{i= ...

  4. 【bzoj2301】[HAOI2011]Problem b 莫比乌斯反演

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

  5. 【Luogu4137】Rmq Problem/mex (莫队)

    [Luogu4137]Rmq Problem/mex (莫队) 题面 洛谷 题解 裸的莫队 暴力跳\(ans\)就能\(AC\) 考虑复杂度有保证的做法 每次计算的时候把数字按照大小也分块 每次就枚举 ...

  6. 【BZOJ2299】[HAOI2011]向量(数论)

    [BZOJ2299][HAOI2011]向量(数论) 题面 BZOJ 洛谷 题解 首先如果我们的向量的系数假装可以是负数,那么不难发现真正有用的向量只有\(4\)个,我们把它列出来.\((a,b)(a ...

  7. 【BZOJ4999】This Problem Is Too Simple!(线段树)

    [BZOJ4999]This Problem Is Too Simple!(线段树) 题面 BZOJ 题解 对于每个值,维护一棵线段树就好啦 动态开点,否则空间开不下 剩下的就是很简单的问题啦 当然了 ...

  8. 【BZOJ2300】[HAOI2011]防线修建 set维护凸包

    [BZOJ2300][HAOI2011]防线修建 Description 近来A国和B国的矛盾激化,为了预防不测,A国准备修建一条长长的防线,当然修建防线的话,肯定要把需要保护的城市修在防线内部了.可 ...

  9. 【bzoj3339】Rmq Problem

    [bzoj3339]Rmq Problem   Description Input Output Sample Input 7 50 2 1 0 1 3 21 32 31 43 62 7 Sample ...

随机推荐

  1. luci 中require函数包含的路径

    在 lua 脚本中常用的包含某个文件就是 require 函数. 例如: #!/usr/bin/lua                     // 表明使用的是lua脚本,像shell脚本一样 lo ...

  2. Mysql按条件计数的几种方法

    最近在给某网站的后台添加一系列的统计功能,遇到很多需要按条件计数的情况.尝试了几种方法,下面简要记录,供大家参考. 问题描述 为使讨论简单易懂,我将问题稍作简化,去掉诸多的背景. 从前有一个皇帝,他有 ...

  3. springcloud-4:服务注册(hello-service)

    服务端 请见 http://www.cnblogs.com/huiy/p/8668005.html 客户端: 主启动类 import org.springframework.boot.SpringAp ...

  4. Android视频录制命令screenrecord

    不管是教学,还是为了演示,如果能将Android手机(或平板)的屏幕录制成视频文件,那是一件非常酷的事(iOS8已经提供了这一功能,能通过OS X直接在Mac上录制iPad.iPhone的屏幕,win ...

  5. Light Oj 1003

    题意 : 给你m个二元关系, 问是否可以确定各个节点的先后关系: 思路: 拓扑排序, 判断是否有环: #include<bits/stdc++.h> using namespace std ...

  6. python 基础 列表

    1.列表list()方法用于将元组转换为列表,[]组成,中间可以放很多内容,每一项使用逗号隔开,列表中可以放置任何数据类型的数据.注:元组与列表是非常类似的,区别在于元组的元素值不能修改,元组是放括号 ...

  7. iOS 去除高德地图下方的 logo 图标

    [self.mapView.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, ...

  8. swift 学习- 22 -- 嵌套类型

    // 枚举 常备用于为特定的类 或 结构体实现某些功能, 类似的, 枚举可以方便的定义工具类 或 结构体, 从而为某个复杂的类型所使用, 为了实现这种功能, Swift 允许你定义 嵌套类型, 可以在 ...

  9. 其他 Confluence 6 的 cookies 和备注

    其他 Confluence 的 cookies 针对 Confluence 的功能,我们还使用了其他的一些 cookies 来存储基本的 产品持久性(product presentation).Con ...

  10. SpringBoot的yml配置文件

    1.在src\main\resources下创建application.yml配置文件 spring: datasource: driver-class-name: com.mysql.jdbc.Dr ...