首页 > 分享 > 洛谷 U266184 宠物小精灵之收服

洛谷 U266184 宠物小精灵之收服

最新推荐文章于 2024-12-12 16:48:46 发布

skyang. 于 2023-01-12 21:57:28 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

题目链接:宠物小精灵之收服 - 洛谷

标签:dp、背包问题

思路:

精灵球个数 与 对皮卡丘的伤害 都可以看成背包问题中的体积,所以将dp数组升级为二维

dp[i][j]表示 i个精灵球 j滴血皮卡丘 最多可以收服多少小精灵。

得到转移方程 dp[i][j] = max(dp[i-v1][j-v2]+1,dp[i][j])

注意点:洛谷测评所用数据与题目描述不一致,将dp数组开成1005×5005才通过

AC代码:

#include<iostream>

using namespace std;

int dp[1005][5005];

int main()

{

int n,m,num;

cin>>n>>m>>num;

int v1,v2;

for(int i=1;i<=num;++i)

{

cin>>v1>>v2;

for(int j=n;j>=v1;j--)

{

for(int k=m;k>v2;k--)

{

dp[j][k]=max(dp[j][k],dp[j-v1][k-v2]+1);

}

}

}

if(dp[n][m]==0) cout<<"0 "<<m<<endl;

else for(int i=m;i>0;i--)

{

if(dp[n][i]<dp[n][m])

{

cout<<dp[n][m]<<" "<<m-i;

break;

}

}

return 0;

}

相关知识

洛谷 U266184 宠物小精灵之收服
宠物小精灵之收服
Bailian4102 宠物小精灵之收服【模拟】
宠物小精灵之收服(二维背包)
1292:宠物小精灵之收服
【动态规划】宠物小精灵之收服
AcWing 1022 宠物小精灵之收服
C++解决:宠物小精灵之收服【oj】
Acwing.提高课.宠物小精灵之收服(c++题解)
信息学奥赛一本通 1292:宠物小精灵之收服 动态规划

网址: 洛谷 U266184 宠物小精灵之收服 https://m.mcbbbk.com/newsview725622.html

所属分类:萌宠日常
上一篇: 宠物小精灵实力等级划分?
下一篇: 宠物小精灵手机版