2020.12.13刷题总结 | 市赛场外围观

比较有意思的题:
无。

偶然拿到了小学组的T5;
有一个龙和\(n\)个勇士,龙有战斗力\(A\)和血量\(B\),勇士也有战斗力\(a_i\)和血量\(b_i\),同时第\(i\)个出场战斗的勇士的战斗值会乘上\(i\),同时这个勇士必须血量被杀完了才能下来,求至少要几个勇士才能把龙整死,如果不行输出\(\text{fail}\)

瞄了一眼,感觉不会/jk

然后群里给了几个\(\text{solution}\)

  • 在场选手:直接给\(a_i\)排序然后从大到小打。
    显然是假的,不说了。
  • 某个神仙:直接按照\(a_i \times b_i\)排序然后从大到小打。
    反例:
    首先整一个引理:

所有勇士的攻击总和的打法一定是按照\(a_i\times b_i\)排序后,然后按从小到大打。
这个证明很easy,就不证了。
如果这个值正好等于\(B\),那么如果按照上面从大到小打显然值就不会到\(B\),输出fail,就假了。

  • 我的做法:二分个数,然后\(\mathcal{O}(n)\)check。

对于\(\text{check}\)函数:
按照上面最大和的打法判断是否\(\ge B\),没了。

我估计还有更优的solution,麻烦在下方评论/se

posted @ 2020-12-13 23:09  luyiming123  阅读(74)  评论(0编辑  收藏  举报