ZOJ3953 ZJU2017校赛(贪心)
Posted 人活着就是为了Chelly
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZOJ3953 ZJU2017校赛(贪心)相关的知识,希望对你有一定的参考价值。
题意:给出n个区间,求至少删掉多少个区间使得不存在区间a, b, c 两两相交 (定义两个区间相交是,区间[l1, r1]和区间[l2, r2]相交,当且仅当存在一个数x,l1<=x<=r1 且 l2<=x<=r2)
输入第一行为T,表示测试数据组数
接下来一行为n,1 <= n <= 50000
接下来n行表示n个区间li,ri,1 <= li <= ri <= 10^9
数据保证所有n的和不超过500000
输出第一行为删掉区间个数m,接下来一行为删去区间的序号(升序输出),如果m为0,接下来一行输出空行
分析:类似那种经典的问题一样
将边按照左端点升序排序,然后依次考虑
我们发现只要考虑当前边和last边以及lastlast边的情况
但如果分类讨论会十分繁琐
有一个巧妙的规律,就是如果三条边两两重合,那么删除的一定是右端点最大的那条边!如果三条边两两不重合,那么右端点大的两个边成为last lastlast
所以只需要每次对3个排下序就ok了,不需要写很多if
以上是关于ZOJ3953 ZJU2017校赛(贪心)的主要内容,如果未能解决你的问题,请参考以下文章
ZOJ 4067 - Books - [贪心][2018 ACM-ICPC Asia Qingdao Regional Problem J]
2017CCPC秦皇岛G ZOJ 3987Numbers(大数+贪心)
ZOJ 4062 - Plants vs. Zombies - [二分+贪心][2018 ACM-ICPC Asia Qingdao Regional Problem E]