(dp)acwing 1022. 宠物小精灵之收服

1022. 宠物小精灵之收服

题目链接https://www.acwing.com/problem/content/1024/
在这里插入图片描述
在这里插入图片描述

#include<iostream>
#include<algorithm>
using namespace std;
int n,m,k;
int dp[1010][510];
int main(){
    
    
    cin>>n>>m>>k;
    int a,b;
    m--;//易错,就是提前避免面恰好体力为0的时刻
    for(int i=1;i<=k;i++){
    
    
        cin>>a>>b;
        for(int j=n;j>=a;j--){
    
    
            for(int z=m;z>=b;z--){
    
    
                dp[j][z]=max(dp[j][z],dp[j-a][z-b]+1);
            }
        }
    }
    int ans=dp[n][m];
    int i=m;
    while(i>=0&&ans==dp[n][i]) i--;
    cout<<ans<<" "<<m-i;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_46028214/article/details/115327580