练习赛14.2.潜水艇

原创 2013年12月02日 19:38:04

潜水员

Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 15 Accepted Submission(s) : 4

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

潜水员为了潜水要使用特殊的装备。他有一个带2种气体的气缸:一个为氧气,一个为氮气。让潜水员下潜的深度需要各种的数量的氧和氮。潜水员有一定数量的气缸。每个气缸都有重量和气体容量。潜水员为了完成他的工作需要特定数量的氧和氮。他完成工作所需气缸的总重的最低限度的是多少?
例如:潜水员有5个气缸。每行三个数字为:氧,氮的(升)量和气缸的重量:
3 36 120
10 25 129
5 50 250
1 45 130
4 20 119
如果潜水员需要5升的氧和60升的氮则总重最小为249(1,2或者4,5号气缸)。 你的任务就是计算潜水员为了完成他的工作需要的气缸的重量的最低值。

Input

输入有多组数据,对于每组数据第一行有2整数m,n(1<=m<=21,1<=n<=79)。它们表示氧,氮各自需要的量。第二行为整数k(1<=n<=1000)表示气缸的个数。此后的k行,每行包括ai,bi,ci(1<=ai<=21,1<=bi<=79,1<=ci<=800)3整数。这些各自是:第i个气缸里的氧和氮的容量及汽缸重量。

Output

对于每组输入输出仅一行包含一个整数,为潜水员完成工作所需的气缸的重量总和的最低值。

Sample Input

5 60
5
3 36 120
10 25 129
5 50 250
1 45 130
4 20 119

Sample Output

249
思路分析:本题为二维背包,分两个循环来比较,跟一维的01背包有点类似。
代码:#include<iostream>
#include<stdio.h>
using namespace std;
 int f[1200][1200];
int main()
{
    //freopen("b.txt","r",stdin);


    int t,a,n;
    int o2,n2,wei;
    while(cin>>t>>a>>n)
    {
         for( int i=0; i<1200; i++ )
     for( int j=0; j<1200; j++ )
       f[i][j]=2345678;
    f[0][0]=0;
    for( int i=1; i<=n; i++ )
      {
             cin>>o2>>n2>>wei;
             for( int o1=t; o1>=0; o1-- )//从要求时的氧气值来比较
              for( int n1=a; n1>=0; n1-- )//从要求时的氮气来比较
               {
                   int x=o1+o2;
                    if( x>t ) x=t;//比较是否达到需要
                   int y=n1+n2;
                    if( y>a ) y=a;
                   if( f[x][y]>f[o1][n1]+wei )
                    f[x][y]=f[o1][n1]+wei;
               }
      }
        cout<<f[t][a]<<endl;
    }
    return 0;
}

2013年heu寒假集训练习赛AK--第3场

  • 2013年01月23日 15:26
  • 64KB
  • 下载

2013年heu寒假集训练习赛AK--第4场

  • 2013年01月24日 16:22
  • 91KB
  • 下载

7.12图论练习赛 T2 幻想乡的符卡 (网络流最小割)

题目题解这题主要是考察建边。限制条件有三:等级,火力,时长。 解决等级和火力的方法是二分答案,可以二分等级,将不满足等级的符卡直接跳过,建边check火力大小的值。 解决时长有两个部分:普通的通过...

2013年ACM多校练习赛题目与标程

  • 2015年11月26日 17:29
  • 369KB
  • 下载

hihoCoder 1483 ([Offer收割]编程练习赛10 C) 【尺取+二分】

给定n个数A1…An,小Ho想了解AL..AR中有多少对元素值相同。小Ho把这个数目定义为区间[L,R]的价值,用v[L,R]表示。例如1 1 1 2 2这五个数所组成的区间的价值为4。现在小Ho想知...
  • ddjing_
  • ddjing_
  • 2017年03月19日 20:00
  • 116

hiho 1638 小Hi的天平 [Offer收割]编程练习赛36 Problem B 并查集+图dfs乱搞

题目2 : 小Hi的天平 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi给小Ho邮寄了一个天平。收到天平后,小Ho想知道天平在运输过程中是否损坏...
  • qdbszsj
  • qdbszsj
  • 2017年11月19日 15:17
  • 95

NYIST_2013寒假ACM集训队练习赛(2)

集训第二周周四,做出来了7道题目,题目非常水,还有几道没有A出来的也不难,完了花点时间水一下,a过的题目贴在这里。没有a的后面补上。 比赛链接:http://acm.hust.edu.cn/vj...

[Offer收割]编程练习赛6 题目1 : Playfair密码表 (密码学——模拟)

传送门时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho经常用Playfair密码表加密自己的代码。 密码表是按以下步骤生成的。 随机选择一个只包含大...

[Offer收割]编程练习赛4

[Offer收割]编程练习赛4  题目简单描述和思路简析 最近天气炎热,小Ho天天宅在家里叫外卖。他常吃的一家餐馆一共有N道菜品,价格分别是A1, A2, ... AN元。并且如果消费总计满...

百度之星2016练习赛 瞬间移动

瞬间移动 System Message (命题人) 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 有一个无限大的矩形,初始时你在左上角(即第一行第一列),...
  • acm_hmj
  • acm_hmj
  • 2016年05月30日 14:44
  • 434
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:练习赛14.2.潜水艇
举报原因:
原因补充:

(最多只允许输入30个字)