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. Codeforces Round #620 F2. Animal Observation (hard version) (dp + 线段树)

    Codeforces Round #620 F2. Animal Observation (hard vers […]...

  2. 【codeforces】Codeforces Round #642 (Div. 3)

    比赛传送门 A. Most Unstable Array B. Two Arrays And Swaps C. […]...

  3. Educational Codeforces Round 80 D E

    A了三题,rk1000左右应该可以上分啦,开...

  4. Magazine Ad CodeForces – 803D(二分 + 贪心,第一次写博客)

    Magazine Ad The main city magazine offers its readers a […]...

  5. Codeforces Round #639 (Div. 2)

    Codeforces Round #639 (Div. 2) (这场官方搞事,唉,just solve for […]...

  6. vs2008 table div 无法全屏的终极解决方案 – 项羽

    vs2008 table div 无法全屏的终极解决方案 在VS2008中对于以下代码: <html&g […]...

  7. CodeForces – 1051D (线性DP) – Lis~

    CodeForces – 1051D (线性DP) 题目:https://codeforces.c […]...

  8. CF102920L Two Buildings【分治】【决策单调性】

    优秀的分治题目。是“2020-2021 ACM-ICPC, Asia Seoul Regional Conte […]...

随机推荐

  1. 《MySQL必知必会》学习笔记整理

    简介 此笔记只包含《MySQL必知必会》中部分章节的整理笔记。这部分章节主要是一些在《SQL必知必会》中并未讲 […]...

  2. 网络爬虫练习之网络小说

    1 import requests 2 import bs4 3 4 #获取网页代码 5 def gethtm […]...

  3. 深度学习 100 题(转)

    深度学习 100 题(转) https://github.com/wizardforcel/data-scie […]...

  4. webform 最后的黄昏之力

    前言 现在有人谈起webform 一般都会说这种技术已经过时了,毫无用处。 因为我们在日常开发中已经不会去开发 […]...

  5. angular2+ 组件中用@import进来的css不起作用

    一般来说是作用域的问题,首先你应该先看标签内是否有angular2内置生成的自定义属性比如: 在我们的@Com […]...

  6. IE6 png 透明 (三种解决方法)(转来的哦)

      FF和IE7已经直接支持透明的png图了,下面这个主要是解决IE6下透明PNG图片有灰底的 ======= […]...

  7. 线程安全问题

    什么是线程安全? 多个线程同时访问了相同的资源,并对该资源进行写的操作,使得资源发生改变时就会产生线程安全问题 […]...

  8. FDTD初学者设置

    步骤: (1)设置几何形状并赋材料性质 (2)设置仿真区、选择网格精度和边界条件 (3)添加合适的光源,修改光 […]...

展开目录

目录导航