宠物小精灵是一部讲述小智和他的搭档皮卡丘一起冒险的故事。

一天,小智和皮卡丘来到了小精灵狩猎场,里面有很多珍贵的野生宠物小精灵。

小智也想收服其中的一些小精灵。

然而,野生的小精灵并不那么容易被收服。

对于每一个野生小精灵而言,小智可能需要使用很多个精灵球才能收服它,而在收服过程中,野生小精灵也会对皮卡丘造成一定的伤害(从而减少皮卡丘的体力)。

当皮卡丘的体力小于等于0时,小智就必须结束狩猎(因为他需要给皮卡丘疗伤),而使得皮卡丘体力小于等于0的野生小精灵也不会被小智收服。

当小智的精灵球用完时,狩猎也宣告结束。

我们假设小智遇到野生小精灵时有两个选择:收服它,或者离开它。

如果小智选择了收服,那么一定会扔出能够收服该小精灵的精灵球,而皮卡丘也一定会受到相应的伤害;如果选择离开它,那么小智不会损失精灵球,皮卡丘也不会损失体力。

小智的目标有两个:主要目标是收服尽可能多的野生小精灵;如果可以收服的小精灵数量一样,小智希望皮卡丘受到的伤害越小(剩余体力越大),因为他们还要继续冒险。

现在已知小智的精灵球数量和皮卡丘的初始体力,已知每一个小精灵需要的用于收服的精灵球数目和它在被收服过程中会对皮卡丘造成的伤害数目。

请问,小智该如何选择收服哪些小精灵以达到他的目标呢?

输入格式

输入数据的第一行包含三个整数:N,M,K,分别代表小智的精灵球数量、皮卡丘初始的体力值、野生小精灵的数量。

之后的K行,每一行代表一个野生小精灵,包括两个整数:收服该小精灵需要的精灵球的数量,以及收服过程中对皮卡丘造成的伤害。

输出格式

输出为一行,包含两个整数:C,R,分别表示最多收服C个小精灵,以及收服C个小精灵时皮卡丘的剩余体力值最多为R。

数据范围

0<N≤1000,
0<M≤500,
0<K≤100

输入样例1:

10 100 5
7 10
2 40
2 50
1 20
4 20

输出样例1:

3 30

输入样例2:

10 100 5
8 110
12 10
20 10
5 200
1 110

输出样例2:

0 100

题目分析:

本题状态分析和二维费用背包问题分析方式一致,直接利用二维背包问题方法求解最多收服的小精灵数量,循环遍历所有收服小精灵数量等于最多收服的小精灵数量,且皮卡丘的体力值花费最少的状态,皮卡丘体力值减去花费最少体力值即为皮卡丘的剩余的最多体力值。

代码实现:

#include<iostream>
#include<algorithm>
using namespace std;
const int N=1005,M=505;
int dp[N][M];
int main(){
int a,b,c;
cin>>a>>b>>c;
for(int i=1;i<=c;i++){
int w1,w2;
cin>>w1>>w2;
for(int j=a;j>=w1;j--){
for(int k=b-1;k>=w2;k--){
dp[j][k]=max(dp[j][k],dp[j-w1][k-w2]+1);
}
}
}
cout<<dp[a][b-1]<<" ";
int res=0;
for(int i=0;i<=b-1;i++){
if(dp[a][i]==dp[a][b-1]){
res=b-i;
break;
}
}
cout<<res<<endl;
return 0;
}

AcWing 1022. 宠物小精灵之收服的更多相关文章

  1. AcWing 1022. 宠物小精灵之收服 二维费用背包

    #include<iostream> using namespace std ; ; int f[N][N]; int V1,V2,n; int main() { cin>>V ...

  2. 【背包DP】【OpenJudge4978】宠物小精灵之收服

    宠物小精灵之收服 总时间限制: 1000ms 内存限制: 65536kB [描述] 宠物小精灵是一部讲述小智和他的搭档皮卡丘一起冒险的故事. 一天,小智和皮卡丘来到了小精灵狩猎场,里面有很多珍贵的野生 ...

  3. NOI 4978 宠物小精灵之收服(二维背包)

    http://noi.openjudge.cn/ch0206/4978/ 描述 宠物小精灵是一部讲述小智和他的搭档皮卡丘一起冒险的故事. 一天,小智和皮卡丘来到了小精灵狩猎场,里面有很多珍贵的野生宠物 ...

  4. 【noi 2.6_4978】宠物小精灵之收服(DP)

    题意:小智有N个精灵球,皮卡丘有M的初始体力,有K个野生小精灵.要收服尽可能多的野生小精灵,并使皮卡丘的剩余体力最大. 解法:01背包问题,增多一维来存第二个条件.f[i][j][k]表示抓前i个野生 ...

  5. noi 4978 宠物小精灵之收服

    题目链接:http://noi.openjudge.cn/ch0206/4978/ 二维费用背包 在最后找还剩多少体力的时候,直接找到第二维,当结果 f[n][i] == f[n][m] 时,就说明已 ...

  6. 宠物小精灵之收服(等级考试4级 2021-03 T1)

    题目: 此题目可转化为 01背包问题 dp[ i ] [ j ] [ l ] 表示i个精灵球.j点体力.l 个精灵时最多收复精灵的个数. 注意事项:开三维数组一定要贴着给的数据开,本题中开dp[100 ...

  7. NOI 动态规划题集

    noi 1996 登山 noi 8780 拦截导弹 noi 4977 怪盗基德的滑翔翼 noi 6045 开餐馆 noi 2718 移动路线 noi 2728 摘花生 noi 2985 数字组合 no ...

  8. 2016.4.9 NOI codevs动态规划专练

    1.NOI 最大子矩阵 1:最大子矩阵 总时间限制:  1000ms 内存限制:  65536kB 描述 已知矩阵的大小定义为矩阵中所有元素的和.给定一个矩阵,你的任务是找到最大的非空(大小至少是1 ...

  9. Atitit. 常用街机系统and 模拟器总结 snk neo geo cps mame sfc smc

    Atitit. 常用街机系统and 模拟器总结 snk neo geo cps mame sfc smc 1. #-------常用 游戏类型 1 2. 街机的历史 2 3. #=========== ...

  10. Hark的数据结构与算法练习之耐心排序

    算法说明 耐心排序是插入排序的一种,至少wikipedia是这么分的. 话说我明白这个算法的实现思路了,但是不明白这么做的意义何在? 如果明白的朋友帮忙留个言说一下,以后如果我明白的话,我会来修改这个 ...

随机推荐

  1. 今日Python练习--正则表达式的相关练习import re

    1.如何利用Python在文本中国提取手机号码 # 如何利用Python在文本中提取手机号码 import re content="白日依山尽,黄河入180320213699999909海流 ...

  2. 钛度守望者旗舰版TSG550鼠标(原相3335芯片)拆解

    鼠标整体外观 鼠标按键支柱,采用的十字形的按键柱,没有采用现在市面上多数鼠标的平面贴片形的按键柱设计,但是耐用性比一字型的按键柱会好很多. 可换微动设计,原装的是凯华GM8.0黑曼巴8000万次微动, ...

  3. 使用requests的session发送请求

    import requests # (1)网址 url = 'https://www.xslou.com/login.php' # (2)输入登录框-->输入密码框-->点击登录找到php ...

  4. hta--Windows运行html的桌面应用程序(HTML应用程序)

    HTA(HTML Application)-- HTML应用程序 作为前端开发,我们能熟练使用html实现各种效果,但是如果要实现一个简单的桌面应用程序那么应该怎么做呢,答案很简单,只需要把html文 ...

  5. IPv4已正式用尽

    网际协议版本4 (英语:Internet Protocol version 4,缩写:IPv4,又称互联网通信协议第四版)是网际协议开发过程中的第四个修订版本,也是此协议第一个被广泛部署和使用的版本. ...

  6. 迁移学习《Efficient and Robust Pseudo-Labeling for Unsupervised Domain Adaptation》

    论文信息 论文标题:Efficient and Robust Pseudo-Labeling for Unsupervised Domain Adaptation论文作者:Hochang Rhee.N ...

  7. 在有限 computational budget 下,借助 low-fidelity 模型提高精度

    论文名称:context-aware learning of hierarchies of low-fidelity models for multi-fidelity uncertainty qua ...

  8. LNMP搭建静态网页服务器

    chattr -i default/.user.ini LNMP搭建使用 1.安装screen,命令或者操作可以一直运行下去 yum install screen 2.获取及安装 LNMP wget ...

  9. Nginx的负载均衡策略

    Nginx的负载均衡策略 个人博客地址: https://note.raokun.top 拥抱ChatGPT,国内访问网站:https://www.playchat.top 共六种: 轮询.权重.ip ...

  10. Kubernetes(K8S) kubesphere 介绍

    使用 Kubeadm 部署 Kubernetes(K8S) 安装--附K8S架构图 官网地址:https://kubesphere.com.cn/ KubeSphere 是个全栈的Kubernetes ...