传送门

贪心

对于第一个不合法的位置,我们显然要通过删除几个覆盖了它的区间来使这个位置合法

显然删右端点更靠右的区间是更优的,所以就考虑优先删右端点靠右的,然后再考虑下一个不合法位置

用一个 $set$ 维护一下右端点和区间编号即可

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<algorithm>
  4. #include<cstring>
  5. #include<cmath>
  6. #include<vector>
  7. #include<set>
  8. using namespace std;
  9. typedef long long ll;
  10. inline int read()
  11. {
  12. int x=,f=; char ch=getchar();
  13. while(ch<''||ch>'') { if(ch=='-') f=-; ch=getchar(); }
  14. while(ch>=''&&ch<='') { x=(x<<)+(x<<)+(ch^); ch=getchar(); }
  15. return x*f;
  16. }
  17. const int N=2e5+;
  18. int n,m;
  19. struct dat {
  20. int r,id;
  21. dat (int _r=,int _id=) { r=_r,id=_id; }
  22. inline bool operator < (const dat &tmp) const {
  23. return r!=tmp.r ? r<tmp.r : id<tmp.id;
  24. }
  25. };
  26. vector <dat> V[N];
  27. vector <int> mov;
  28. set <dat> S;
  29. int main()
  30. {
  31. n=read(),m=read(); int a,b,mx=;
  32. for(int i=;i<=n;i++)
  33. a=read(),b=read(),
  34. mx=max(mx,b),
  35. V[a].push_back(dat(b,i));
  36. int ans=;
  37. for(int i=;i<=mx;i++)
  38. {
  39. while(S.size()&&(*S.begin()).r<i) S.erase(S.begin());
  40. for(auto x: V[i]) S.insert(dat(x.r,x.id));
  41. while(S.size()>m)
  42. {
  43. auto p=S.rbegin();
  44. ans++,mov.push_back((*p).id);
  45. S.erase(*p);
  46. }
  47. }
  48. printf("%d\n",ans);
  49. for(auto x: mov) printf("%d ",x); puts("");
  50. return ;
  51. }

Codeforces 1249 D2. Too Many Segments (hard version)的更多相关文章

  1. codeforces 1249 D2 Too Many Segments (hard version) 贪心+树状数组

    题意 给定n个线段,线段可以相交,第\(i\)个线段覆盖的区间为\([l_i,r_i]\),问最少删除多少个线段让覆盖每个点的线段数量小于等于k. 分析 从左往右扫每个点\(x\),若覆盖点\(x\) ...

  2. Codeforces Round #535 E2-Array and Segments (Hard version)

    Codeforces Round #535 E2-Array and Segments (Hard version) 题意: 给你一个数列和一些区间,让你选择一些区间(选择的区间中的数都减一), 求最 ...

  3. 【Codeforces 1108E1】Array and Segments (Easy version)

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 枚举最大值和最小值在什么地方. 显然,只要包含最小值的区间,都让他减少. 因为就算那个区间包含最大值,也无所谓,因为不会让答案变小. 但是那些 ...

  4. codeforces 1249D1/D2 Too Many Segments (贪心)

    (点击此处查看原题) 题意说明 有n个区间,第i个区间覆盖范围[li,ri]内所有点,问删除最少哪些区间,使得所有点被区间覆盖的次数少于等于k次 解题思路 看到这个题的时候,觉得和开关(反转)问题很像 ...

  5. Codeforces 1108E2 Array and Segments (Hard version) 差分, 暴力

    Codeforces 1108E2 E2. Array and Segments (Hard version) Description: The only difference between eas ...

  6. Codeforces Round #535 (Div. 3) E2. Array and Segments (Hard version) 【区间更新 线段树】

    传送门:http://codeforces.com/contest/1108/problem/E2 E2. Array and Segments (Hard version) time limit p ...

  7. Codeforces 1108E2 Array and Segments (Hard version)(差分+思维)

    题目链接:Array and Segments (Hard version) 题意:给定一个长度为n的序列,m个区间,从m个区间内选择一些区间内的数都减一,使得整个序列的最大值减最小值最大. 题解:利 ...

  8. D2. Remove the Substring (hard version)(思维 )

    D2. Remove the Substring (hard version) time limit per test 2 seconds memory limit per test 256 mega ...

  9. D2. Equalizing by Division (hard version)

    D2. Equalizing by Division (hard version) 涉及下标运算一定要注意下标是否越界!!! 思路,暴力判断以每个数字为到达态最小花费 #include<bits ...

随机推荐

  1. Echarts常用API(echarts和echartsInstance)

    一.echarts上的方法 一般在项目中引入echarts之后,可以获得一个全局的echarts对象. 1.下面是几个比较常用的echarts方法 echarts.init() 创建一个echarts ...

  2. [ERR] 2006 - MySQL server has gone away如何解决

    解决方案: max_allowed_packet = 16M 改大点! 文章来源:外星人来地球 欢迎关注,有问题一起学习欢迎留言.评论

  3. mysql中的sql-mode导致的datetime类型字段不能为0000

    问题描述: 在执行建表语句的时候,出现invalid default datetime value '0000-00-00 00:00:00',从字面意思看,就是不合法的默认值'0000-00-00 ...

  4. mybatis 的 <![CDATA[ ]]> 标签作用

    有个细节一直没有注意到,今天mark一下: mybatis进行时间比较的时候我们会这么写,一直都是在复制粘贴所以没有注意,一个标签<![CDATA[ ]]> 今天在做另外一个有时间比较sq ...

  5. SQL-W3School-函数:SQL NOW() 函数

    ylbtech-SQL-W3School-函数:SQL NOW() 函数 1.返回顶部 1. NOW() 函数 NOW 函数返回当前的日期和时间. 提示:如果您在使用 Sql Server 数据库,请 ...

  6. kafka和zookeeper的配置文件优化配置

    zookeeper的配置 日志自动清理这两个参数都是在zoo.cfg中配置的:    autopurge.purgeInterval 这个参数指定了清理频率,单位是小时,需要填写一个1或更大的整数,默 ...

  7. 123457123456#0#-----com.threeapp.XianshiDaDiShu03-----现实版打地鼠03

    com.threeapp.XianshiDaDiShu03-----现实版打地鼠03

  8. 执行spark-shell报错:

    执行spark-shell报错: [ERROR] Terminal initialization failed; falling back to unsupportedjava.lang.NoClas ...

  9. weblogic12.1.3安装

    weblogic weblogic12.1.3安装 环境: centos7.5 ip: 192.168.0.94 1.安装jdk 2.安装 weblogic 下载.解压安装包 wls1213_dev. ...

  10. 使用 Sublime + PlantUML 高效地画图

    转自 http://www.jianshu.com/p/e92a52770832