【noi 2.6_4978】宠物小精灵之收服(DP)
2024-10-19 06:57:37
题意:小智有N个精灵球,皮卡丘有M的初始体力,有K个野生小精灵。要收服尽可能多的野生小精灵,并使皮卡丘的剩余体力最大。
解法:01背包问题,增多一维来存第二个条件。f[i][j][k]表示抓前i个野生小精灵,用了j个精灵球,耗费了k的体力时能抓的最多的小精灵数。(我把[i]的那维简化掉了,PG里的m代替N,v代替M,n代替K。)
1 #include<cstdio>
2 #include<cstdlib>
3 #include<cstring>
4 #include<iostream>
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 }
最新文章
- WCF+Restfull服务 提交或获取数据时数据大小限制问题解决方案
- input checkbox 扩大点击范围
- 磁盘IO的性能指标
- 二、JavaScript语言--JS基础--JavaScript进阶篇--事件响应
- LightOJ 1422 (区间DP)
- 连接mysql遇到的问题
- FSMC stm32
- (C/C++) Interview in English - Basic concepts.
- Yii系列教程(二):功能简介
- POJ3264	 Balanced Lineup 线段树区间最大值 最小值
- 【MINA】用protobuf做编解码协议
- Oracle 使用命令导入dmp文件
- Redis事务管理
- 解决Android模拟器卡慢的问题
- 题解 P1601 【A+B Problem(高精)】
- 微信浏览器里在底部的输入框,ios11的不会被遮盖、10.1会被盖住
- Docker虚拟机理论
- mysql索引hash索引和b-tree索引的区别
- memtrack: Couldn&#39;t load memtrack module (No such file or directory) 的问题解决
- WebBench压力测试工具
热门文章
- LeetCode220 存在重复元素 III
- pip不是内部或外部命令解决方法
- 区间合并 C++
- Java进阶专题(二十一) 消息中间件架构体系(3)-- Kafka研究
- 【MySQL】ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing
- cut和tr命令的联合使用
- 3A限流IC,带短路保护,PW1503和PW1502
- ichartjs测试dome分享
- Nifi组件脚本开发—ExecuteScript 使用指南(一)
- Centos 安装postgreSQL9.4.3