【贪心】qbxt精英班

来源:互联网 发布:手机上怎么看淘宝分销 编辑:程序博客网 时间:2024/04/30 17:34

例1 类国王游戏

有n 个人, 每个人手上有两个大于1 的数字ai; bi.
它们按某种顺序(你定) 排成一队, 每个人的智商是他前面所有人的a
值的乘积除以他自己的b 值.
求一种排队方式使得智商最高的人的智商最低.

n <= 10^5.

取log 变成加法.
其实只与相邻两人的顺序有关.
前后的人他们都影响不了.
推一推式子. 假设有俩人i; j.
i 在j 前面的答案是

max(bi,aibj);

i 在j 后面的答案是
max(bj,ajbi);

显然 - bj < ai - bj; - bi < aj - bi.
所以ai - bj < aj - bi.
所以ai + bi < aj + bj.
只需要将ai  bi 从小到大排序就可以啦.

例2 线段覆盖
你有n 个一维线段, 你要选m 个出来, 使得它们两两没有交集.
问m 最大值.

n <= 10^5.

从左到右依次取, 每次取能取的里面右端点最靠左的.

原创粉丝点击