pku1727 Advanced Causal Measurements (ACM)

来源:互联网 发布:浏览器不能打开淘宝网 编辑:程序博客网 时间:2024/06/04 19:35

题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1727

题意简述:这题的题意还真有点难理解,给定一系列点,给定覆盖点数,要求求出覆盖点的最小t值最大。(覆盖规则题目已给出式子)

解题思路:二分+贪心。先对点按x升序排列,然后用二分枚举最大的最小t值,判断该枚举值是否可行,可行继续往上二分,否则往下二分。二分的初始上界:上界就是原给定点的最小t值,下界是一个很小的负数(由于题目中只给定了原始点的x范围,这里自己适当取值)。剩下的问题就是如何判断是否可行了:由题中给的公式t2 >= t1+|x2-x1|可以化简为:t1-t2+x2<=x1<=t2-t1+x2。有了这个式子就一直线扫过去,需要缩小范围就缩小范围,当该范围无解时,覆盖点数增加,重新设定范围。最终当覆盖点数如果大于题目给定的覆盖点数,则返回false;否则返回true。于是结果就出来了。

以下是代码:

原创粉丝点击