题目链接
做法
发现 $ f_k(h) = C(k, h) $ 是单峰函数,意味着可以像 【NOI2010】超级钢琴 一样用优先队列维护当前每个 $ k $ 最大值。
发现组合数很大,优先级不容易确定。考虑取组合数的对数,再用对数( $ \log (a \times b) = \log a + \log b $ )进行比较。
1 |
|
To love and win is the best thing. To love and lose is the next best thing.
发现 $ f_k(h) = C(k, h) $ 是单峰函数,意味着可以像 【NOI2010】超级钢琴 一样用优先队列维护当前每个 $ k $ 最大值。
发现组合数很大,优先级不容易确定。考虑取组合数的对数,再用对数( $ \log (a \times b) = \log a + \log b $ )进行比较。
1 | #include <bits/stdc++.h> |