zoukankan      html  css  js  c++  java
  • 【例9.15】潜水员

    【例9.15】潜水员

    链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1271


    时间限制: 1000 ms         内存限制: 65536 KB

    【题目描述】

    潜水员为了潜水要使用特殊的装备。他有一个带2种气体的气缸:一个为氧气,一个为氮气。让潜水员下潜的深度需要各种的数量的氧和氮。潜水员有一定数量的气缸。每个气缸都有重量和气体容量。潜水员为了完成他的工作需要特定数量的氧和氮。他完成工作所需气缸的总重的最低限度的是多少?

    例如:潜水员有5个气缸。每行三个数字为:氧,氮的(升)量和气缸的重量:

    3 36 120

    10 25 129

    5 50 250

    1 45 130

    4 20 119

    如果潜水员需要5升的氧和60升的氮则总重最小为249(1,2或者4,5号气缸)。

    你的任务就是计算潜水员为了完成他的工作需要的气缸的重量的最低值。

     

     

    【输入】

    第一行有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个气缸里的氧和氮的容量及汽缸重量。

     

    【输出】

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

    【输入样例】

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

    【输出样例】

    249
    #include<iostream>
    #include<cstring>
    #include<cstdio>
    using namespace std;
    int o[1005],n[1005],v[1005],f[25][100];
    int main()
    {
        int O,N,K;
        cin>>O>>N>>K;
        memset(f,127,sizeof(f));
        f[0][0]=0;
        for(int i=1;i<=K;i++)cin>>o[i]>>n[i]>>v[i];
        for(int i=1;i<=K;i++)
            for(int j=O;j>=0;j--)
                for(int k=N;k>=0;k--)
                    {
                        int t1=j+o[i],t2=k+n[i];
                        if(t1>O)t1=O;
                        if(t2>N)t2=N;
                        f[t1][t2]=min(f[t1][t2],f[j][k]+v[i]);
                    }
        cout<<f[O][N]<<endl;
        
    }
  • 相关阅读:
    JavaScript中需要注意的几个问题
    前端编码规范之JavaScript
    那些年,我们一起玩过的响应式布局
    前端编码规范之CSS
    一个不陌生的JS效果-marquee,用css3来实现
    解读jQuery中extend函数
    字体大小自适应纯css解决方案
    浅谈叶小钗面试的几个问题
    【Python开发】C和Python之间的接口实现
    【Python开发】【编程开发】各种系统的清屏操作命令
  • 原文地址:https://www.cnblogs.com/EdSheeran/p/7672601.html
Copyright © 2011-2022 走看看