zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 94 (Rated for Div. 2)B. RPG Protagonist

    Educational Codeforces Round 94 (Rated for Div. 2)B. RPG Protagonist

    题意:
    给你俩个背包p,f,俩种物品a,b的数量,和重量。求最多能拿多少物品。
    思路:
    暴力是一门艺术,好耶!
    题目给的p,f很大,直接背包肯定8行。假设a<b(可以交换),如果第一个背包拿了s1个第一个物品,那么拿第二种和第二个背包拿东西都可以确定了。也就是说,s1的大小从0到可以拿的最大值,然后根据s1的数量再计算剩下的物品的数量,取最大值即可。

    #include <bits/stdc++.h>
    #define inf 0x3f3f3f3f
    #define INF 0x3f3f3f3f3f3f3f3f
    #define mem(a, b) memset(a, b, sizeof(a))
    #define pb push_back
    #define ll long long
    using namespace std;
    const double PI = acos(-1.0);
    const int N = 2e5 + 10;
    const int mod = 998244353;
    ////////////////////////////////
    ll ans;
    ll p, f, cnts, cntw, sw, ww;
    void solve()
    {
        ans=0;
        cin >> p >> f >> cnts >> cntw >> sw >> ww;
        if (sw > ww)
        {
            swap(sw, ww);
            swap(cnts, cntw);
        }
        ll s1 = min(cnts, p / sw);
        ll tmp=s1;
        for (int s1 = 0; s1 <= tmp; s1++)
        {
            ll w1 = min(cntw, (p - s1 * sw) / ww);
            ll s2 = min(cnts - s1, f / sw);
            ll w2 = min(cntw - w1, (f - s2 * sw) / ww);
            ans=max(ans,w1+s2+w2+s1);
        }
        cout<<ans<<endl;
    }
    int main()
    {
        int t;
        cin >> t;
        while (t--)
        {
            solve();
        }
        return 0;
    }
    
  • 相关阅读:
    无法添加sql server ER图
    我和COC
    WordPress怎样设置菜单栏旋转小图标
    VS Code怎样设置成中文
    初探 Git Submodules
    使用 rsync-deploy-action 同步 Hexo 博客到个人服务器
    Latex基本语法简记
    SQLAlchemy建立数据库模型之间的关系
    Flask的请求钩子与上下文简览
    如何将本地项目推送到Github
  • 原文地址:https://www.cnblogs.com/Aracne/p/13962149.html
Copyright © 2011-2022 走看看