2018 宁夏省赛F(2019银川网络赛F) Moving On 用微扰法粗证贪心正确性

原题:https://nanti.jisuanke.com/t/A1766

贪心策略:先杀 攻击力/击杀时间 高的怪

粗证:

首先很明确的一点是最优策略下一定是只攻击同一只怪直到其死亡,而不能“雨露均沾”

所以可以计算出击杀每一只怪所需要用的时间,那么一只怪就有两个属性:攻击力,击杀时间

将怪按击杀时间前后排成一行

2018 宁夏省赛F(2019银川网络赛F) Moving On 用微扰法粗证贪心正确性_第1张图片

每击杀一只怪,在往后的时间内玩家单位时间受到的攻击就会减少那只怪的ATK值

而一只怪对玩家生命值减少的贡献则为那只怪的攻击力*击杀它之前用的所有时间

2018 宁夏省赛F(2019银川网络赛F) Moving On 用微扰法粗证贪心正确性_第2张图片

任意选择两只怪,此时两只怪的击杀顺序交换对玩家生命值减少的贡献在红色框之外没有影响

2018 宁夏省赛F(2019银川网络赛F) Moving On 用微扰法粗证贪心正确性_第3张图片

帮这两只怪编号

2018 宁夏省赛F(2019银川网络赛F) Moving On 用微扰法粗证贪心正确性_第4张图片

分别计算这两只怪先杀之后对玩家生命值损伤的贡献(红色框之外的两只怪谁在前都无影响)

Ai表示i的攻击力,ti表示杀死i所需要的时间

假如i在前面更优,则需要对玩家生命值损伤尽量小

2018 宁夏省赛F(2019银川网络赛F) Moving On 用微扰法粗证贪心正确性_第5张图片

所以i在前面(先杀)更优需要i的 攻击力/击杀时间 更大

粗证完成

 

这个是队内大佬跟我说的,我凭着记忆写下来,这是我第一次看到用微扰来证明贪心正确性(在比赛上)

代码略

 

 

你可能感兴趣的:(acm)