• AC日记——L国的战斗之间谍 洛谷 P1916


    题目背景

    L国即将与I国发动战争!!

    题目描述

    俗话说的好:“知己知彼,百战不殆”。L国的指挥官想派出间谍前往I国,于是,选人工作就落到了你身上。

    你现在有N个人选,每个人都有这样一些数据:A(能得到多少资料)、B(伪装能力有多差)、C(要多少工资)。已知敌人的探查间谍能力为M(即去的所有人B的和要小于等于M)和手头有X元钱,请问能拿到多少资料?

    输入输出格式

    输入格式:

    N M X

    A1 B1 C1

    A2 B2 C2

    ………………

    AN BN CN

    输出格式:

    能得到的资料总数

    输入输出样例

    输入样例#1:
    3 10 12
    10 1 11
    1 9 1
    7 10 12
    
    输出样例#1:
    11

    说明

    数据范围:

    1≤n≤100,1≤m≤1000, 1≤x≤1000

    思路:

      二维背包;

    来,上代码:

    #include <cstdio>
    #include <iostream>
    
    using namespace std;
    
    int if_z,n,m,x,ci,vi,vi_,dp[1005][1005];
    
    char Cget;
    
    inline void in(int &now)
    {
        now=0,if_z=1,Cget=getchar();
        while(Cget>'9'||Cget<'0')
        {
            if(Cget=='-') if_z=-1;
            Cget=getchar();
        }
        while(Cget>='0'&&Cget<='9')
        {
            now=now*10+Cget-'0';
            Cget=getchar();
        }
        now*=if_z;
    }
    
    int main()
    {
        in(n),in(m),in(x);
        for(int i=1;i<=n;i++)
        {
            in(ci),in(vi),in(vi_);
            for(int j=m;j>=vi;j--)
            {
                for(int v=x;v>=vi_;v--) dp[j][v]=max(dp[j][v],dp[j-vi][v-vi_]+ci);
            }
        }
        cout<<dp[m][x];
        return 0;
    }
  • 相关阅读:
    JavaScript
    LeetCode(17)Letter Combinations of a Phone Number
    LeetCode(96)Unique Binary Search Trees
    LeetCode(16)3Sum Closest
    Python更换pip源,更换conda源
    LeetCode(15)3Sum
    LeetCode(94)Binary Tree Inorder Traversal
    LeetCode(14)Longest Common Prefix
    LeetCode(29)Divide Two Integers
    LeetCode(12)Integer to Roman
  • 原文地址:https://www.cnblogs.com/IUUUUUUUskyyy/p/6492645.html
Copyright © 2020-2023  润新知