1 条题解
-
0
何老师 (root) LV 0 MOD @ 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