P2473 [SCOI2008] 奖励关 题解

首先看这个范围又看到这种题目,就知道是状压 DP 跑不了了。

一个直接的思路是设 fi,s 表示当前到第 i 轮,宝物拿取状态为 s 时的得分,但是我们发现这玩意直接推的话会出现一些奇奇怪怪的状态,主要是这个系统有时扔出来的宝物不能让你到达 s 或者是你推着推着 s 里面 1 的个数就大于 i 了。

所以我们需要换个方法,采用逆推的思路。

逆推的话状态需要改一下:fi,s 表示 1 到 i1 轮宝物拿取状态为 s,第 i 轮到第 k 轮的平均得分。

这样的话由于 i+1k 的所有状态都是合法的,自然 i 的状态也是合法的。

于是我们就可以得到如下的转移方程:

fi,s=max{fi+1,s,fi+1,s|(1<<(j1))+pjjS1}

其中上式的 S1 表示在当前状态 s 下,能够拿取的宝物集合。

于是这道题做完了,答案是 f1,0

Code:GitHub CodeBase-of-Plozia P2473 [SCOI2008] 奖励关

posted @   Plozia  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示