Codeforces Round #595 (Div. 3)D1D2

ilikeeatfish 2019-11-06 原文

Codeforces Round #595 (Div. 3)D1D2

一道用STL的贪心,正好可以用来学习使用STL库

题目大意:给出n条可以内含,相交,分离的线段,如果重叠条数超过k次则为坏点,n,k<2e5

所以我们贪心的想我们从左往右遍历,如果重合部分条数超过了k,就必须去除线段,(此时从左边看去除线段后不会出现冲突,右边还有剩余很多线段未知)所以我们选择去除这些重合线段里右端最右的部分

实现:

#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> pii;
typedef long long ll;
const int maxn =2e5+30;
set<pii>res;
vector<pii>v[maxn];
vector<int>ans;
int main(){
int n,k,mx=0,t1,t2;
scanf(“%d%d”,&n,&k);
for(int i=1;i<=n;i++){
scanf(“%d%d”,&t1,&t2);
v[t1].push_back({t2,i});//左端点t1储存右端点和序号i,C11的用法这里{t2,i}等于make_pair
mx=max(t2,mx);
}
for(int i=0;i<=mx;i++){
while(res.begin()->first <i&&!res.empty())//当右端点小于i时已经完全扫过,此时删去该线段
res.erase(res.begin());//删去整条线段
for(int j=0;j<v[i].size();j++)
res.insert(v[i][j]);//插入该端点为左端点下的线段
while(res.size()>k){//如果此时重合部分大于k,则找到这些线段里右端点最右的线段,加入ans并删去
ans.push_back(res.rbegin()->second);//rbegin()返回的是最末元素的位置
res.erase(–res.end());//注意虽然效果一样但end和rbegin的类型不一样
}
}
cout<<ans.size()<<endl;
for(auto x:ans){
cout<<x<<‘ ‘;
}
cout<<endl;
}

原题链接:https://codeforces.com/contest/1249/problem/D2

关于迭代器的tip

 

 

发表于
2019-11-06 20:51 爱吃鱼的小管 阅读() 评论() 编辑 收藏

 

版权声明:本文为ilikeeatfish原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/ilikeeatfish/p/11808577.html

Codeforces Round #595 (Div. 3)D1D2的更多相关文章

  1. $POJ2942 Knights of the Round Table$ 图论

    正解:图论 解题报告: 传送门! 一道,综合性比较强的题(我是萌新刚学$OI$我只是想连下$tarjan$,, […]...

  2. div 超出高度滚动条,超出宽度点点点

    超出高度滚动条style="width:230px; height: 180px; overflow: aut […]...

  3. Google Kickstart Round E 2018 B. Milk Tea

    太蠢了,,,因为初始化大数据没过,丢了10分,纪念一下这个错误 大概思路:先求出让损失值最小的排列,由已生成的 […]...

  4. 像纸质笔记本一样给div,textarea添加行的分割线

    像纸质笔记本一样给div,textarea添加行的分割线 想要给textarea添加一个背景图来实现 但是背景 […]...

  5. Codeforces Round #585 (Div. 2)

    https://www.cnblogs.com/31415926535x/p/11553164.html 感觉 […]...

  6. 吴昊品游戏核心算法 Round 15 —— 吴昊教你玩德州扑克(模拟+标志位存储) – 吴昊系列

    吴昊品游戏核心算法 Round 15 —— 吴昊教你玩德州扑克(模拟+标志位存储)  梭哈   梭哈,又称沙蟹 […]...

  7. Codeforces #698 (Div. 2) E. Nezzar and Binary String 题解

    中文题意: 给你两个长度为 \(n\) 的01串 \(s,f,\)有 \(q\) 次询问。 每次询问有区间 \ […]...

  8. Codeforces1493D GCD of an Array

    题目链接 点我跳转 题目大意 给定一个长度为 \(N\) 的序列 \(A\) 有 \(Q\) 次操作,每次操作 […]...

随机推荐

  1. python基础-集合set的常用方法

    set为什么翻译成集合,这个词据说是从日本传过来的。 set特点:1.不同的元素组成。 2.无序 3.集合中的 […]...

  2. Asp.net Authenticated users 权限问题 – siso

    Asp.net Authenticated users 权限问题 偶然发现Windows,非系统盘 权限具有这 […]...

  3. 如何利用redis来进行分布式集群系统的限流设计

    在很多高并发请求的情况下,我们经常需要对系统进行限流,而且需要对应用集群进行全局的限流,那么我们如何类实现呢。 […]...

  4. 相片尺寸

      照片的尺寸是以英寸为单位,1英寸=2.54cm ,通常X寸是指照片长的一边的英寸长度。如:5寸就是照片宽为 […]...

  5. line-height详解

    line-height详解   要说line-height就必须要知道这几个概念了: 顶线、中线、基线、底线。 […]...

  6. SQL Server GUID 数据迁移至MongoDB后怎么查看?

    关键字:SQL Server NEWID();BSON;MongoDB UUID 1.遇到的问题和困惑  SQ […]...

  7. 分享我收集的前端好资源:网址、文章、工具、框架、电子书

    开始全职前端开发已经9个月了,在这9个月中收集了一还自认为还不错的资源,主要有前端资讯、技术博客、精彩文章、实 […]...

  8. 卡巴斯基向四川灾区首批捐款120万元现金 – 灵感试验室

    卡巴斯基向四川灾区首批捐款120万元现金 5月13日,得知四川省汶川县因强震遭受重大损失后,卡巴斯基联合数字星 […]...

展开目录

目录导航