传送门!

比赛的时候没有时间写了,看看了看大佬的代码,学习学习。

一开始实验室大佬说是用差分写的,但是看了代码发现打cf的人大家都是stl狂魔!

贪心思路:区间按照左端点排序,从1~2e5遍历每一个点,不是遍历区间

如果有以该点为起点的区间则加入set并用pair记录右端点以及区间下标(pair第一维为右端点,从小到大排序)

当遍历到某一点的时候如果set的第一个及右端点最小的小于i就弹出去set

其实就是我们以set来记录同时存在的区间数,然后如果s.size()大于k就证明包含该点的区间数肯定大于K,即覆盖大于k次

删除set中右端点最靠右的那个,就是set的最后一个元素,这里就是贪心的意义。

//#pragma comment (linker, "/STACK:102400000,102400000")
#include<bits/stdc++.h>
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<set>
#include<stack>
#include<vector>
#include<map>
#include<queue>
#include<list>
#include<time.h>
#define myself i,l,r
#define lson i<<1
#define rson i<<1|1
#define Lson i<<1,l,mid
#define Rson i<<1|1,mid+1,r
#define half (l+r)/2
#define lowbit(x) x&(-x)
#define min4(a, b, c, d) min(min(a,b),min(c,d))
#define min3(x, y, z) min(min(x,y),z)
#define max3(x, y, z) max(max(x,y),z)
#define max4(a, b, c, d) max(max(a,b),max(c,d))
//freopen("E://1.in","r",stdin);
//freopen("E://1.out","w",stdout);
typedef unsigned long long ull;
typedef long long ll;
#define pii make_pair
#define pr pair<int,int>
const int inff = 0x3f3f3f3f;
const int dir[4][2] = {0, 1, 0, -1, 1, 0, -1, 0};
const int mdir[8][2] = {0, 1, 0, -1, 1, 0, -1, 0, 1, 1, -1, 1, 1, -1, -1, -1};
const double eps = 1e-10;
const double PI = acos(-1.0);
const double E = 2.718281828459;
using namespace std;
const long long inFF = 9223372036854775807;
const int mod=1e9+7;
const int maxn=2e5+5;
vector<pr> v[maxn];//记录该店为起点的区间的右端点及编号
set<pr> s;
vector<int> ans;
int main()
{int n,k;ios::sync_with_stdio(false);cin>>n>>k;int x,y;for(int i=1;i<=n;i++){cin>>x>>y;v[x].push_back(pii(y,i));}for(int i=1;i<=2e5;i++){while(s.size()&&s.begin()->first<i) //如果某个区间右端点小于i删除s.erase(s.begin());for(auto x:v[i]) s.insert(x);//s中加入以i点为区间左端点的区间while(s.size()>k){ans.push_back((--s.end())->second);//如果大于k则证明i点覆盖大于k次s.erase(--s.end());//贪心删除右端点最右边的那个}}cout<<ans.size()<<endl;for(auto x:ans) cout<<x<<" ";//auto是真好用vector中
}

Too Many Segments CF595D 贪心乱搞相关推荐

  1. BZOJ 1124 [POI2008]枪战Maf 贪心+乱搞

    题意:略. 方法:贪心+乱搞. 解析: 今天做的题里面最难的了- 分连通块进行考虑. 一个连通块最多死多少呢? 一个点 -> 死一个 一个环 -> 死环上点个数-1个 一个环加上内向树 - ...

  2. 【CodeForces - 349A】Cinema Line (贪心(其实不是贪心),乱搞)

    题干: The new "Die Hard" movie has just been released! There are n people at the cinema box ...

  3. BZOJ4401:块的计数(乱搞)

    Description 小Y最近从同学那里听说了一个十分牛B的高级数据结构--块状树.听说这种数据结构能在sqrt(N)的时间内维护树上的各种信息,十分的高效.当然,无聊的小Y对这种事情毫无兴趣,只是 ...

  4. CodeForces - 747D Winter Is Coming(xjb乱搞)

    题目链接:http://codeforces.com/problemset/problem/747/D点击打开链接 D. Winter Is Coming time limit per test 1 ...

  5. AcWing 397. 逃不掉的路(边双连通分量缩点成树 + 树链剖分乱搞)

    整理的算法模板合集: ACM模板 我们知道在同一个边双连通分量中的点没有必经边(因为至少有两条分离的路径). 所以我们直接tarjan求出桥后缩点,然后求一下树上两点间的距离即可. 那么如何求树上两点 ...

  6. bzoj 1050: [HAOI2006]旅行comf(codevs.cn 1001 舒适的路线) 快排+并查集乱搞

    没用的话:好像很久没发博客了,主要是懒太蒟找不到水题.我绝对没弃坑...^_^ 还用些话:本文为博主原创文章,若转载请注明原网址和作者. 进入正题: 先pa网址: bzoj :http://www.l ...

  7. BZOJ-1800 飞行棋 数学+乱搞

    这道题感觉就是乱搞,O(n^4)都毫无问题 1800: [Ahoi2009]fly 飞行棋 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 1172 So ...

  8. 【BZOJ-3578】GTY的人类基因组计划2 set + map + Hash 乱搞

    3578: GTY的人类基因组计划2 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 367  Solved: 159 [Submit][Status ...

  9. Luogu3732 [HAOI2017] 供给侧改革 【后缀数组】【线段树】【乱搞】

    题目分析: 这道题我是乱搞的,因为他说$01$串是随机的. 那么我们可以猜测能够让LCP变大的地方很少.求出后缀数组之后可能让LCP变大的地方就等价于从大到小往height里动态加点同时维护这个点左右 ...

最新文章

  1. java-数据结构-续
  2. 阿里云机器学习PAI构建AI集团军作战,联手Intel在AI软硬件领域发力
  3. 1万条数据大概占多大空间_9月漫画数据月报丨多平台评论数,收藏数较上月大幅下降...
  4. 后端学习 - SpringBoot
  5. stub 和 skeleton 的讲解,自己实现一个stub和skeleton程序
  6. 多类目MoE模型在京东电商搜索中的应用
  7. layui 自动渲染_Layui表格自动渲染
  8. 蓝桥杯2015年第六届C/C++省赛C组第一题-隔行变色
  9. 添加类库引用后,命名空间出错的解决方案
  10. ubuntu10.10 教育网 使用ipv6,亲测可用【经过再次验证与修正】
  11. 别踩白块儿 java源码下载_“别踩白块儿游戏源代码分析和下载
  12. Django Q查询
  13. zone2021 E-Sneaking
  14. 个性化推荐系统设计(3.1)——如何评价个性化推荐系统的效果
  15. Blender游戏开发教程
  16. ffmpeg详细安装教程
  17. 炒汇常识--股市与汇市的区别
  18. sed命令详解与示例
  19. FUEL: Fast UAV Exploration using Incremental Frontier Structure and Hierarchical Planning
  20. vscode 文件格式化

热门文章

  1. HarmonyOS shape 的使用
  2. Thread start()方法和run()方法的区别
  3. Android 自定义 —— View lineTo 与 rLineTo 的区别
  4. jquery 监听的案例
  5. 路由器虚拟服务器功能(广域网服务端口和局域网服务端口的映射关系)
  6. 《windows核心编程系列》二谈谈ANSI和Unicode字符集
  7. 从0开始搭建坚不可摧的Web系统主流架构
  8. Go 学习笔记(53)— Go 标准库之 path(判断绝对路径、拆分目录和文件、组合路径、返回路径目录、获取路径最后文件名、获取文件扩展名、路径匹配规则)
  9. 九度oj 题目1411:转圈
  10. Keil中使用宏编译来定义DEBUG输出