zoukankan      html  css  js  c++  java
  • 二维费用的背包问题

    luogu P1507 NASA的食物计划

    题目背景

    NASA(美国航空航天局)因为航天飞机的隔热瓦等其他安

    全技术问题一直大伤脑筋,因此在各方压力下终止了航天

    飞机的历史,但是此类事情会不会在以后发生,谁也无法

    保证,在遇到这类航天问题时,解决方法也许只能让航天

    员出仓维修,但是多次的维修会消耗航天员大量的能量,

    因此NASA便想设计一种食品方案,让体积和承重有限的

    条件下多装载一些高卡路里的食物.

    思想:多出一个限制条件就增加一维数组

    #include<iostream>
    #include<cstdio>
    using namespace std;
    int f[51][401][401],w[401],u[401],k[401];//W是体积,u是质量,k是卡路里 
    int main()
    {
        int v,m,n;
        scanf("%d%d%d",&v,&m,&n);//v是体积,m是质量 
        for(int i=1;i<=n;++i)
        {
            scanf("%d%d%d",w+i,u+i,k+i);
        }
        for(int i=1;i<=n;++i)
        {
            for(int j=1;j<=v;++j)
            {
                for(int q=1;q<=m;++q)
                {
                    if(q>=u[i])
                    {
                        if(j>=w[i])
                        {
                            f[i][j][q]=max(f[i-1][j][q],f[i-1][j-w[i]][q-u[i]]+k[i]);
                        }
                        else
                        {
                            f[i][j][q]=f[i-1][j][q];
                        }
                    }
                    else
                    {
                        f[i][j][q]=f[i-1][j][q];
                    }
                }
            }
        }
        cout<<f[n][v][m];
    }

    另一种解法  压维打击

    代码如下

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    int f[401][401],w[401],u[401],k[401];
    int main()
    {
        int v,m,n;
        scanf("%d%d%d",&v,&m,&n);//v是体积,m是质量 
        for(int i=1;i<=n;++i)
        {
            scanf("%d%d%d",w+i,u+i,k+i);
        }
        for(int i=1;i<=n;++i)
        {
            for(int j=v;j>=w[i];--j)
            {
                for(int q=m;q>=u[i];--q)
                {
                    f[j][q]=max(f[j][q],f[j-w[i]][q-u[i]]+k[i]);
                }
            }
        }
        cout<<f[v][m];
    }
  • 相关阅读:
    学习进度条博客(软件工程)第一周
    随机产生30个两位数的四则运算(包括真分数的计算)
    构建之法阅读笔记01
    感想
    《构建之法》阅读笔记04
    团队冲刺第二天
    第八周学习进度条
    团队冲刺第一天
    第七周学习进度条
    课堂测试03
  • 原文地址:https://www.cnblogs.com/tpgzy/p/8919983.html
Copyright © 2011-2022 走看看