zoukankan      html  css  js  c++  java
  • codevs 1669 运输装备

    时间限制: 1 s
     空间限制: 256000 KB
     题目等级 : 钻石 Diamond
    题目描述 Description

    德国放松对英国的进攻后,把矛头指向了东北——苏联。 1943年初,东线的站头进行到白热化阶段。据可靠情报,90余万德国军队在库尔斯克准备发动好大的攻势。因此,朱可夫元帅要求你立即从远东的军工厂运输大量装备支援库尔斯克前线。 列车司机告诉你,一趟列车最多可以容纳V体积的武器装备,但是你可能不能装满,因为列车承受不了那么大的重量,一趟列车最多可以承载G单位的重量。同时,军工厂仓库提供给你一份装备清单,详细记录了每件装备的体积、重量和火力。为了有效支援朱可夫元帅,你要找到一种方案,使得总火力值最大。

    输入描述 Input Description

    第一行:V和G表示最大重量和体积。 第二行:N表示仓库有N件装备; 第三到N+2行:每行3个数Ti  Vi  Gi表示个装备的火力值、体积和重量;

    输出描述 Output Description

    输出一个数,表示可能获得的最大火力值

    样例输入 Sample Input

    6 5

    4

    10 2  2

    20 3  2

    40  4  3

    30  3  3

    样例输出 Sample Output

    50

    数据范围及提示 Data Size & Hint

    【数据范围】

    对于50%的数据,V,G,N≤100

    对于100%的数据,V,G,N≤1000 

    二维背包DP 点击传送

    本以为这题很难,结果跑了个01背包就AC了。。。

    #include <algorithm>
    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #include <cmath>
    
    using namespace std;
    
    int V,G,i,j,k,N;
    int t[1001],v[1001],g[1001],dp[1001][1001];
    int main()
    {
        cin>>V>>G;
        cin>>N;
        for(i=0;i<N;++i)
        cin>>t[i]>>v[i]>>g[i];
        for(i=0;i<N;++i)
        {
            for(j=V;j>=v[i];--j)
            {
                for(k=G;k>=g[i];--k)
                dp[j][k]=max(dp[j][k],dp[j-v[i]][k-g[i]]+t[i]);
            }
        }
        cout<<dp[V][G];
    }
    我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。
  • 相关阅读:
    209. Minimum Size Subarray Sum
    208. Implement Trie (Prefix Tree)
    207. Course Schedule
    206. Reverse Linked List
    205. Isomorphic Strings
    204. Count Primes
    203. Remove Linked List Elements
    201. Bitwise AND of Numbers Range
    199. Binary Tree Right Side View
    ArcGIS API for JavaScript 4.2学习笔记[8] 2D与3D视图同步
  • 原文地址:https://www.cnblogs.com/ruojisun/p/6368167.html
Copyright © 2011-2022 走看看