博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【noi 2.6_4978】宠物小精灵之收服(DP)
阅读量:6315 次
发布时间:2019-06-22

本文共 929 字,大约阅读时间需要 3 分钟。

题意:小智有N个精灵球,皮卡丘有M的初始体力,有K个野生小精灵。要收服尽可能多的野生小精灵,并使皮卡丘的剩余体力最大。

解法:01背包问题,增多一维来存第二个条件。f[i][j][k]表示抓前i个野生小精灵,用了j个精灵球,耗费了k的体力时能抓的最多的小精灵数。(我把[i]的那维简化掉了,PG里的m代替N,v代替M,n代替K。)

1 #include
2 #include
3 #include
4 #include
5 using namespace std; 6 #define INF 1e6 7 8 int a[110],b[110]; 9 int f[1010][510];10 11 int main()12 {13 int m,v,n;14 scanf("%d%d%d",&m,&v,&n);15 for (int i=1;i<=n;i++)16 scanf("%d%d",&a[i],&b[i]);17 int mx=0,ans=0;18 memset(f,0,sizeof(f));19 for (int i=1;i<=n;i++)20 for (int j=m;j>=a[i];j--)21 for (int k=v;k>=b[i];k--)22 {23 f[j][k]=max(f[j][k],f[j-a[i]][k-b[i]]+1);24 if (f[j][k]>mx||(f[j][k]==mx && v-k>ans)) mx=f[j][k],ans=v-k;25 }26 if (!mx) ans=v;27 printf("%d %d\n",mx,ans);28 return 0;29 }

 

 

 

转载于:https://www.cnblogs.com/konjak/p/5936848.html

你可能感兴趣的文章
常用脚本--归档ERRORLOG
查看>>
js网页倒计时精确到秒级
查看>>
常用CSS缩写语法总结
查看>>
TDD:什么是桩(stub)和模拟(mock)?
查看>>
C# 模拟POST提交文件
查看>>
PAT 解题报告 1004. Counting Leaves (30)
查看>>
Android开发之蓝牙 --修改本机蓝牙设备的可见性,并扫描周围可用的蓝牙设备
查看>>
[Head First设计模式]生活中学设计模式——外观模式
查看>>
Repository模式中,Update总是失败及其解析
查看>>
.Net 转战 Android 4.4 日常笔记(2)--HelloWorld入门程序
查看>>
js insertBefore
查看>>
如何为自己的博客文章自动添加移动版本(目前仅支持博客园)
查看>>
转载:Windows Phone 8.1 投影我的屏幕使用教程
查看>>
【转载】技巧:Vim 的纵向编辑模式
查看>>
hdu 3183(贪心)
查看>>
微设计(www.weidesigner.com)介绍系列文章(一)
查看>>
redis常用配置
查看>>
[EF] 如何在 Entity Framework 中以手动方式设定 Code First 的 Migration 作业
查看>>
【Spring实战-3】Spring整合Hibernate、Struts
查看>>
sqLSERVER 计划缓存
查看>>