题解

1 条题解

  • 0
    @ 2024-09-25 10:14:22

    贪心+动规

    贪心得到答案序列:对于每个回合,能是猜偶数就猜偶数,不能再考虑猜奇数,若猜奇数也会输掉比赛,则输出-1。

    现在关键是如何判定第i个回合猜偶数还是奇数,甚至猜奇数也会输掉比赛!

    这里动态规划预处理:

    设f[i][0]表示当第i回合猜偶数时,小沐完成i之后的所有回合需要的最少金币数
    同理f[i][1]表示当第i回合猜奇数时,小沐完成i之后的所有回合需要的最少金币数

    显然:f[M+1][0]=f[M+1][1]=1

    对于f[i][0],因为猜的是偶数,所以:

    当第i回合小苇能出的数全是偶数,则她会出示最小的偶数,设为a[i][k],此时 f[i][0]= max(1,min(f[i+1][0],f[i+1][1])-a[i][k])

    当第i回合小苇能出的数中包含有奇数,则她会出示最大的奇数,设为a[i][j],此时 f[i][0]= min(f[i+1][0],f[i+1][1])+a[i][j]

    对于f[i][1] 做类似的处理。

    有了上面f[i][0]和f[i][1],则

    第i回合能猜偶数的条件是:N>=f[i][0](N表示剩下的金币数),能猜奇数的条件是N>=f[i][1]。两个都不能猜,则小沐会输掉比赛。

  • 1

信息

ID
2946
难度
9
分类
动态规划 | 贪心 点击显示
标签
递交数
9
已通过
1
通过率
11%
被复制
1
上传者