蓝桥杯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;
}
相关推荐
NiNg_1_2346 分钟前
Java爬虫(HttpURLConnection)详解
java·开发语言·爬虫
我来变强了28 分钟前
WebSocket简易聊天室实现(有详细解释)
java·网络·websocket
dr李四维37 分钟前
深入List集合:ArrayList与LinkedList的底层逻辑与区别
java·数据结构·后端·list
编程修仙37 分钟前
java集合—List的底层结构和源码分析
java·开发语言·list
武昌库里写JAVA38 分钟前
R语言机器学习与临床预测模型77--机器学习预测常用R语言包
java·开发语言·算法·spring·log4j
response_L39 分钟前
PageOffice打开保存文件的执行流程(工作原理)
java·word·excel·在线编辑
旺旺碎冰冰、42 分钟前
List、ArrayList与顺序表1
java·开发语言·数据结构·list
YiHanXii44 分钟前
Java中 LinkedList<>,ArrayDeque<>的区别 || Queue和Deque的区别
java·算法
桃始笑叶始泪1 小时前
HTML面试题
java·前端·html
cdut_suye1 小时前
踏入 C++ 的深邃世界:实现 unordered_set 与 unordered_map 的优雅之旅
java·大数据·c++·人工智能·python·深度学习·机器学习