CodeForces - 1400B - RPG Protagonist (贪心)

简介: 笔记

RPG Protagonist



题意


7.png



思路

首先我们可以知道,有可能不能使得重量恰好为p 和f 所以会有浪费 那么浪费多少呢?不容易求解,但是,剑和战斧的数量只有 2e5,还可以知道优先拿重量小的可以多拿,所以我们可以贪心的枚举 p 会拿多少把质量较小的武器(比如是剑) 然后求 f最多可以拿多少把剑(同样是质量小的可以多拿的原因)和战斧 求一个 m a x 即可


注意枚举时要从 0 开始


代码

#include<bits/stdc++.h>
#define INF 0x3f3f3f3f3f3f3f3f
#define mod 998244353
#define IOS ios::sync_with_stdio(false)
#define endl '\n'
using namespace std;
typedef long long LL;
LL p, f, cnts, cntw, s, w;
void solve() {
    cin >> p >> f >> cnts >> cntw >> s >> w;
    if (s > w) {
        swap(s, w);
        swap(cnts, cntw);
    }
    LL res = 0;
    for (int i = 0; i <= cnts; ++i) { //枚举p拿多少个s
        LL t = 0;
        if (i * s <= p) {
            t += i; //p拿s的数量
            t += (p - i * s) / w; //p拿完s后还能拿多少w
        }
        LL tag; //p拿s的数量
        if (!t)
            tag = 0;
        else tag = i;
        LL sum = min(f / s, cnts - tag);
        t += sum; //p拿完后 f能拿多少个s
        t += min((f - sum * s) / w, cntw - (p - i * s) / w); //f拿完s后能拿多少w
        res = max(res, t);
    }
    cout << res << endl;
}
int main(){
    int t; cin >> t;
    while(t--)
        solve();
    return 0;
}


目录
相关文章
【动态规划刷题 5】 最小路径和&&地下城游戏
【动态规划刷题 5】 最小路径和&&地下城游戏
|
算法
【学会动态规划】地下城游戏(10)
【学会动态规划】地下城游戏(10)
60 0
|
数据采集 算法 数据挖掘
【每周一坑】螺旋矩阵
今天这题,看起来挺简单,实际写出来并不容易。在以前公司我曾把它做过招聘的笔试题,结果惨不忍睹,不得不拿掉。
【每周一坑】螺旋矩阵
P1865 A % B Problem(欧拉筛,永远的神)
P1865 A % B Problem(欧拉筛,永远的神)
52 0
过河卒-蓝桥杯-动态规划
过河卒-蓝桥杯-动态规划
128 0
|
人工智能 决策智能
博弈论(NIM游戏——取石子)相关的题目
博弈论(NIM游戏——取石子)相关的题目
157 0
|
人工智能
|
人工智能
好题分享
好题分享
82 0
HDU7018.Banzhuan(计算几何+贪心)
HDU7018.Banzhuan(计算几何+贪心)
104 0
HDU7018.Banzhuan(计算几何+贪心)