CSP-J模拟赛 T2 宴会 题解
update:这题我降橙了,难在思维上。
首先,可以证明宴会举行的点不在数轴的点上就在两点的正中间。那么立刻就能得到一种暴力解法:对每个这样的点进行枚举,每次做计算,挑最小值作为答案。但很明显这样非常慢。
接着,我们想到二分方法:将位置
- 如果
T < t_i ,则只能取更大值。 - 否则第
i 个人的活动区间为[x_i-(T-t_i),x_i+(T-t_i)] 。
最后所有区间取交集后判断是否合法(即左端点小于右端点),符合则
但这样时间复杂度也是
注意到如果不考虑换装时间,那么使用贪心算法,打擂台找最大和最小,取中间值。
那么我们只考虑两边点的准备时间,我们可以证明哪边的点准备时间多
注意:多测不清空,爆零两行泪!!