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 379E New Year Tree Decorations

    传送门 题意 给你\(n\)个在坐标系内下表面贴着\(x\)轴的多边形,求出每个多边形露出的面积。 思路 正解 […]...

  2. Codeforces Round #732 (Div. 2)【ABCD】

    比赛链接:https://codeforces.com/contest/1546 A. AquaMoon an […]...

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

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

  4. Codeforces Round #615 (Div. 3)

    A. Collecting Coins 题目链接:https://codeforces.com/contest […]...

  5. Codeforces1144D(D题)Equalize Them All

    D. Equalize Them All You are given an array aa consisti […]...

  6. 【CF1436C】Binary Search 题解

    模拟 排列组合 原题链接 题意简介 要求有多少种 n 的排列,能够通过二分法正确地找到放在 pos 处的数字 […]...

  7. div 内元素的垂直居中

    小主今天偷点懒利用上班时间整理一下 div 内元素的居中(不论垂直还是水平通用)问题的解决方法:   本文的中 […]...

  8. (dp) Codeforces Educational Codeforces Round 21 E-Selling Souvenirs

    After several latest reforms many tourists are planning […]...

随机推荐

  1. 前端页面高度和宽度自适应怎么做?

      在前端页面开发中,我们会希望页面可以根据不同用户的显示比例自动缩放页面,确保用户体验,这就是PC自适应,下 […]...

  2. 子绝父相-哈根达斯例子

    <html lang="en"> <head> <meta charset="U […]...

  3. 教你如何提升微信朋友圈互动频率 如何快速增加好友

    每天朋友圈都是各种产品泛滥,坦白讲很烦。陌生的肯定是拉黑,可是有一些都是朋友、同事,你也不好拉黑。可是难忍刷屏 […]...

  4. AD设计中地铜突然消失且无法选中删除的解决办法

    作者:struct_mooc 博客地址: https://www.cnblogs.com/structmooc […]...

  5. WIN7下安装visualC++2008 redistributable 出现1935错误的解决办法(转自)

    转自:http://zhidao.baidu.com/link?url=jylNh_JeANi4wrOMmd4 […]...

  6. java反射机制

    1.通过例子了解Java反射机制 1 package java_reflect; 2 3 public cla […]...

  7. ANSYS渡槽槽身动水压力的施加(1)——矩形渡槽

    前言 依据水工抗震规范中关于渡槽动水压力的部分编一个用于ANSYS渡槽模型动水压力施加的命令流,是我研究生时一 […]...

  8. redis_列表对象

    redis_列表对象 《Redis设计与实现》中说:redis列表对象有两种底层编码格式:ziplist、li […]...

展开目录

目录导航