题解 [USACO10JAN]Cheese Towers S
给同学讲完全背包时找到的一个好题。
题目分析
我们首先知道,如果这个题没有大奶酪,那么就是一个裸的完全背包,代码可以参考这题。
这题难就难在如果我们加上大奶酪之后要怎么处理。
首先,我们知道最优解只有可能是一下两种情况:
- 塔内没有大奶酪,也就是完全背包的板子。
- 我们选择把大奶酪放到最顶端,因为如果在这个奶酪塔里有大奶酪,那么把它放到最顶端肯定不会使答案变差。
答案是两者取最大值。
对于第二种情况的处理,我们可以尝试去枚举最顶端的那个大奶酪,然后用 来取最大值,从而可以求出第二种的答案。
其实这道题的核心就是第二种情况的处理,因此这里给出第二种情况的代码。
for(int i=1;i<=n;i++) { if(c[i]>=k)//如果是大奶酪 { int tmp1=v[i]+f[(t-c[i])*5/4];//求出要被用来更新这个值 tmp=max(tmp1,tmp);//更新值 } }
本文作者:zplqwq
本文链接:https://www.cnblogs.com/zplqwq/p/15695552.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
标签:
DP
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· dotnet 源代码生成器分析器入门
· 官方的 MCP C# SDK:csharp-sdk
· 一款 .NET 开源、功能强大的远程连接管理工具,支持 RDP、VNC、SSH 等多种主流协议!
· 一文搞懂MCP协议与Function Call的区别
· 提示词工程师自白:我如何用一个技巧解放自己的生产力