蓝桥杯Java ABC组 AcWing P1022 宠物小精灵之收服

题目链接:

https://www.acwing.com/problem/content/description/1024/

#01背包

典型的二维 01 背包问题

但求"收服 C 个小精灵时皮卡丘的剩余最多体力值"时卡了一下

当时在想这二维费用怎么不平衡之类的,其实没有这么复杂

求出最大值后,就再遍历一遍,找出最小消耗的体力

代码

cpp 复制代码
#include <iostream>
#include <algorithm>

using namespace std;

const int N = 1010, M = 510;

int n, V1, V2;
int f[N][M];

int main()
{
    cin >> V1 >> V2 >> n;
    for (int i = 0; i < n; i ++ )
    {
        int v1, v2;
        cin >> v1 >> v2;
        for (int j = V1; j >= v1; j -- )
            for (int k = V2 - 1; k >= v2; k -- )
                f[j][k] = max(f[j][k], f[j - v1][k - v2] + 1);
    }

    cout << f[V1][V2 - 1] << ' ';
    int k = V2 - 1;
    while (k > 0 && f[V1][k - 1] == f[V1][V2 - 1]) k -- ;
    cout << V2 - k << endl;

    return 0;
}
相关推荐
手揽回忆怎么睡1 分钟前
Java集成whisper.cpp
java·开发语言·whisper
无名-CODING10 分钟前
栈与队列学习笔记
java·笔记
Hui Baby12 分钟前
LSM 原理、实现及与 B+ 树的核心区别
java·linux·算法
NZT-4812 分钟前
C++基础笔记(二)队列deque,queue和堆priority_queue
java·c++·笔记
Tadas-Gao17 分钟前
存储技术革命:SSD、PCIe与NVMe的创新架构设计与性能优化
java·性能优化·架构·系统架构·存储
codergjw26 分钟前
常见面试题
java
咕噜企业分发小米27 分钟前
如何平衡服务器内存使用率和系统稳定性?
java·服务器·前端
李子园的李28 分钟前
函数式编程与传统编程的对比——基于java
java
爬山算法29 分钟前
Netty(13)Netty中的事件和回调机制
java·前端·算法
南极企鹅1 小时前
Gson转义特殊字符
java