潜水员

原创 2013年12月04日 21:49:24

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

//    解题报告:简单二维01背包问题
//标程:
#include<stdio.h>
#include<string.h>
struct ss
{
    int x,y,z;
}p[1100];
int main()
{
    //freopen("a.txt","r",stdin);
    int n,m,k,i,j,l;
    int dp[25][100];
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        memset(dp,127,sizeof(dp));
        scanf("%d",&k);
        for(i=0;i<k;i++) 
            scanf("%d%d%d",&p[i].x,&p[i].y,&p[i].z);
        dp[0][0]=0;
        for(i=0;i<k;i++)
        {
            for(j=n;j>=0;j--)
            {
                for(l=m;l>=0;l--)
                {
                   int d=j+p[i].x;
                   if(d>n) d=n;
                   int d1=l+p[i].y;
                   if(d1>m) d1=m;
                   if(dp[d][d1]>dp[j][l]+p[i].z)
                       dp[d][d1]=dp[j][l]+p[i].z;
                }
            }
        }
        printf("%d\n",dp[n][m]);
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

通过事件同步两个窗体之间的数据

一、应用场景 一窗体(FormA)采用datagridview 等数据显示控件显示数据,需要双击其中的数据在另一个窗体(FormB)显示其详细信息并可以进行修改,当其修改完毕后,FormA窗体显示更...

usaco training 6.1.3 Cow XOR 题解

这是字母树的经典应用。首先因为是求xor的最大值,可以用前缀和计算xor值,然后n^2枚举即可。 for (i=1;i<=n;i++) for (j=1;jans) 就记录; 然而由于范围的关系,...

NKOI 1873 COW XOR奶牛异或

Cow XOR奶牛异或 Time Limit:10000MS  Memory Limit:65536K Total Submit:138 Accepted:56  Case Time Limit...

2017.9.14 星际竞速 失败总结

这个题就是要选一些边,覆盖所有点,并且边的权值和最小 然后这是一开始建的图: 有如下问题: 1、变数太多 2、最大流不满足问题性质 为了解决2,我们必须让每一个方案都满足最大流的条件 原图的问题是...

USACO 6.1.3 COWXOR 字典树

这题一开始看的时候一点思路都没有,后来看到题解才想到。其实这题并不难,只是涉及到位运算和字典树罢了。 用a[i]表示前i个数的异或和,那么序列[i,j]的异或和就是a[j] xor a[i-1]。 如...

11秋冬新款大码彩裤糖果铅笔裤小脚裤牛仔裤打底裤女裤长裤子996

促销价格 : 48.0 元 掌柜 : 苹果妞妞的店 信用 : 30天累计售出 : 件 宝贝与描述相符 : 4.6低于1.75% 卖家的服务态度 : 4.7低于1.27% 卖家发货的速度 ...

[NOIP 模拟]潜水员 DP

题目潜水员为了潜水要使用特殊的装备。他有一个带2种气体的气缸:一个为氧气,一个为氮气。让潜水员下潜的深度需要各种的数量的氧和氮。潜水员有一定数量的气缸。每个气缸都有重量和气体容量。潜水员为了完成他的工...

潜水员

Problem Description 潜水员为了潜水要使用特殊的装备。他有一个带2种气体的气缸:一个为氧气,一个为氮气。让潜水员下潜的深度需要各种的数量的氧和氮。潜水员有一定数量的气缸。每个气缸都...

潜水员的问题

[POI1998] 潜水员的问题 ★★   输入文件:ple.in   输出文件:ple.out   简单对比 时间限制:1 s   内存限制:128 MB 【问题描述】   &...

WUST 1873 潜水员 (二维背包) 【模板】

潜水员为了潜水要使用特殊的装备。他有一个带2种气体的气缸:一个为氧气,一个为氮气。让潜水员下潜的深度需要各种的数量的氧和氮。潜水员有一定数量的气缸。每个气缸都有重量和气体容量。潜水员为了完成他的工作需...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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