咸鱼做题天天%题解

那么我们可以把这道题转化成线段覆盖问题

读进来的a,b说明在最后的小到大顺序中,n-a+1~n比我大,1~b比我小

换言之就是b+1~n-a是和我相等的。

那么相同区间的我们可以合并,这个区间的权就是min(相同的个数,区间大小)

我们可以利用DP计算选择一些不相交的区间的最大值,答案就是n减去它

记得特判不合法的情况

#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;struct node{int l,r,d;}a[110000];int len;
bool cmp(node n1,node n2){return n1.r==n2.r?n1.l<n2.l:n1.r<n2.r;}
int f[110000];
int main()
{freopen("a.in","r",stdin);freopen("a.out","w",stdout);int n,x,y;scanf("%d",&n);len=0;for(int i=1;i<=n;i++){scanf("%d%d",&x,&y);if(x+y>n||y+1>n-x)continue;a[++len].l=y+1,a[len].r=n-x;}sort(a+1,a+len+1,cmp);int tp=0;for(int i=1;i<=len;i++){if(a[i].l!=a[i-1].l||a[i].r!=a[i-1].r)tp++,a[tp].l=a[i].l,a[tp].r=a[i].r,a[tp].d=0;a[tp].d=min(a[tp].d+1,a[tp].r-a[tp].l+1);}len=tp;int j=1;f[0]=0;for(int i=1;i<=n;i++){f[i]=f[i-1];while(j<=n&&a[j].r==i){f[i]=max(f[i],f[a[j].l-1]+a[j].d);j++;}}printf("%d\n",n-f[n]);return 0;
}

转载于:https://www.cnblogs.com/AKCqhzdy/p/9918217.html

bzoj2298: [HAOI2011]problem a相关推荐

  1. [LG P2519][BZOJ2298][HAOI2011]problem a

    [LG P2519][BZOJ2298][HAOI2011]problem a 题目描述 一次考试共有n个人参加 第i个人说:"有ai个人分数比我高,bi个人分数比我低." 问最少 ...

  2. BZOJ2298 [HAOI2011]problem a

    先把所有人从小到大排序,则 如果一个人说a个人比他大,b个人比他小,等价于他声称[b + 1, n - a]的值是相等的 问题转化为给一些线段,找出一些不重叠的线段,价值最大 (注意:线段可以重合!! ...

  3. BZOJ2298 [HAOI2011]problem a 【dp】

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

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

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

  5. [POI2007]ZAP-Queries [HAOI2011]Problem b 莫比乌斯反演

    1,[POI2007]ZAP-Queries ---题面--- 题解: 首先列出式子:$$ans = \sum_{i = 1}^{n}\sum_{j = 1}^{m}[gcd(i, j) == d]$ ...

  6. BZOJ2301: [HAOI2011]Problem b

    2301: [HAOI2011]Problem b Time Limit: 50 Sec  Memory Limit: 256 MB Submit: 6435  Solved: 2986 [Submi ...

  7. [HAOI2011]Problem c

    链接 P2523 [HAOI2011]Problem c 想法还是很巧妙的. 其实只是问一个先后顺序,因为编号相同的话,那么\(id\)小的就在前面,\(id\)大的就在后面. 所以我们考虑的是到底有 ...

  8. BZOJ 2301 [HAOI2011]Problem b

    2301: [HAOI2011]Problem b Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函 ...

  9. BZOJ 2301: [HAOI2011]Problem b

    二次联通门 : BZOJ 2301: [HAOI2011]Problem b /*BZOJ 2301: [HAOI2011]Problem b莫比乌斯反演 + 容斥将k除下来后就变为了一道原题后像求二 ...

  10. 【BZOJ 2298】 2298: [HAOI2011]problem a (DP)

    2298: [HAOI2011]problem a Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 1326  Solved: 637 Descrip ...

最新文章

  1. 三分钟教会你搭建动态网络
  2. python小乌龟消除_悄悄告诉你,Python 里面有一只小乌龟
  3. 北京2019高考分数线:本科理423文480
  4. ipad怎么和mac分屏_ipad学习方法分享[1]
  5. Response.Redirect ,Server.Transfer ,Server.Execute, 的区别(比较)
  6. 高斯金字塔 拉普拉斯金字塔_金字塔学入门指南
  7. Leetcode 279. Perfect Square
  8. 超级计算机清华,从清华到华科 名校为何主办超级计算机大赛?
  9. 崩坏3服务器故障 临时维护,崩坏3 11.5游戏故障处理及补偿说明
  10. VIM使用小技巧-重新载入文件
  11. Flume Sink Processor
  12. LeetCode刷题——64. 最小路径和
  13. 【Tools】位、字节、机器字、储存单元、主存等概念剖析
  14. web前端入门到实战:CSS实现平行四边形布局效果
  15. html 让按钮立体,纯CSS3打造立体质感按钮
  16. 初出茅庐,请“专业”赐教!
  17. IAP的无线版(stm32无线下载程序)(基于有线升级)
  18. 《新财富》500富人榜 参考
  19. Java编程思想第4版第三章习题
  20. org.Hs.eg.db安装

热门文章

  1. HDU - 3506 Monkey Party
  2. git报错之fatal: protocol error: bad line length character: No This
  3. [转]在ubuntu下安装sublime text
  4. android调用系统的自定义裁剪后得到的图片不清晰,使用MediaStore.EXTRA_OUTPUT获取缓存下的清晰图片...
  5. 浅谈对称加密和非对称加密
  6. 搜索场 day1 A 求和
  7. linux 串口内核加载,linux对串口编程的详解(从应用层到内核驱动,包括232,485)
  8. python 单向链表实现快速排序_若干排序算法的Python实现方法及原理
  9. pcb天线设计和hfss仿真分析实例_5G天线与多天线系统设计
  10. 线程同步与互斥:POSIX无名信号量