专栏文章

P1080 国王游戏贪心证明

P1080题解参与者 6已保存评论 5

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
5 条
当前快照
1 份
快照标识符
@miqj9n6k
此快照首次捕获于
2025/12/04 05:42
3 个月前
此快照最后确认于
2025/12/04 05:42
3 个月前
查看原文
本题解是对按左右手乘积排序的贪心证明。
设第 iijj 两个人,iijj 相邻,ii 左手 a[i]a[i]、右手 b[i]b[i]jj 左手 a[j]a[j]、右手 b[j]b[j]
  1. 如果 iijj 前面,对最终答案的影响值是a[0]÷b[j]a[0]\div b[j]a[0]a[0] 为国王左手的数,b[j]b[j] 为大臣j右手的数)和(a[0]×a[i])÷b[j+1](a[0]\times a[i])\div b[j+1]a[i]a[i] 为大臣 ii 左手的数,b[j+1]b[j+1] 为大臣 j+1j+1 右手的数,以此类推)。
  2. 如果 jjii 前面,对最终答案的影响值是 a[0]÷b[i+1]a[0]\div b[i+1](a[0]×a[j])÷b[i](a[0]\times a[j])\div b[i]
    要保持 iijj 前面使得答案更小,必须满足:
    • a[0]÷b[j]<a[0]÷b[i+1]a[0]\div b[j] < a[0]\div b[i+1](a[0]×a[i])÷b[j+1]<(a[0]×a[j])÷b[i] (a[0]\times a[i])\div b[j+1] < (a[0]\times a[j])\div b[i]
    • 由于 a[0]a[0] 是固定的,所以可以去掉,得到1÷b[j]<1÷b[i+1]1\div b[j] < 1\div b[i+1]a[i]÷b[j+1]<a[j]÷b[i]a[i]\div b[j+1] < a[j]\div b[i]
    • 注意到 1÷b[j]1\div b[j] 总是小于等于 a[k]÷b[j]a[k]\div b[j](其中 a[k]a[k] 为任意大臣左手的数),a[i]÷b[j+1]a[i]\div b[j+1] 总是大于等于 1÷b[j+1]1\div b[j+1],所以只需满足a[i]÷b[j+1]<a[j]÷b[i]a[i]\div b[j+1] < a[j]\div b[i],即 a[i]×b[i]<a[j]×b[j]a[i]\times b[i] < a[j]\times b[j]

评论

5 条评论,欢迎与作者交流。

正在加载评论...