例1 类国王游戏
有n 个人, 每个人手上有两个大于1 的数字ai; bi.
它们按某种顺序(你定) 排成一队, 每个人的智商是他前面所有人的a
值的乘积除以他自己的b 值.
求一种排队方式使得智商最高的人的智商最低.
n <= 10^5.
取log 变成加法.
其实只与相邻两人的顺序有关.
前后的人他们都影响不了.
推一推式子. 假设有俩人i; j.
i 在j 前面的答案是
max(bi,ai−bj);
i 在j 后面的答案是
max(bj,aj−bi);
显然 - bj < ai - bj; - bi < aj - bi.
所以ai - bj < aj - bi.
所以ai + bi < aj + bj.
只需要将ai bi 从小到大排序就可以啦.
例2 线段覆盖
你有n 个一维线段, 你要选m 个出来, 使得它们两两没有交集.
问m 最大值.
n <= 10^5.
从左到右依次取, 每次取能取的里面右端点最靠左的.