AcWing 1022. Elf's pet rein (two-dimensional backpack)

Topic links: Click here

Here Insert Picture Description
Here Insert Picture Description
Here Insert Picture Description

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>

using namespace std;
const int N = 1010;

int f[N][N];

int main()
{
    int s, m, n;    //s小智的精灵球数量、m皮卡丘初始的体力值、n野生小精灵的数量
    scanf("%d%d%d", &s, &m, &n);
    
    for(int i = 1; i <= n; ++i)
    {
        int a, b;
        scanf("%d%d", &a, &b);
        
        for(int j = s; j >= a; --j)
        {
            for(int k = m - 1; k >= b; --k)//当皮卡丘的体力小于等于0时,小智就必须结束狩猎
            {
                f[j][k] = max(f[j][k], f[j-a][k-b] + 1);
            }
        }
    }
    
    printf("%d", f[s][m - 1]);
    
    int k = m - 1;
    while(k > 0 && f[s][k-1] == f[s][m - 1])    k--;
    
    printf(" %d", m - k);
    
    return 0;
}
Published 844 original articles · won praise 135 · Views 150,000 +

Guess you like

Origin blog.csdn.net/qq_42815188/article/details/104978824