zoukankan      html  css  js  c++  java
  • 【洛谷p1507】NASA的食物计划

    (一次a……)

    NASA的食物计划【传送门】

    好的上算法标签:

    嗯这是个二维背包


    (万年不变分隔线)

    二维的题就是在一维基础上增加了一个条件,这个背包不仅含有质量还有体积。所以我们增加一层循环。核心算法:

        for(int i=1;i<=n;i++)
            for(int j=m;j>=zl[i];j--)
                for(int k=v;k>=tj[i];k--)
                    f[i][j][k]=max([f[i-1][j][k],f[i-1][j-z1[i]][k-v1[i]]+c[i]);

    降二维节省空间:

      for(int i=1;i<=n;i++)
            for(int j=m;j>=zl[i];j--)
                for(int k=v;k>=tj[i];k--)
                    f[j][k]=max([f[j][k],f[j-z1[i]][k-v1[i]]+c[i]);

    好的扯回原题:nasa的食物计划

    ac代码如下:(懒得写解释)

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #include<string>
    #include<cmath>
    using namespace std;
    int v,m;
    int n;
    int tj[1000],zl[1000],dgc[1000];
    int f[5001][5001];
    int main()
    {
        cin>>v>>m>>n;
        for(int i=1;i<=n;i++)
        cin>>tj[i]>>zl[i]>>dgc[i];
        for(int i=1;i<=n;i++)
            for(int j=m;j>=zl[i];j--)
                for(int k=v;k>=tj[i];k--)
                    f[j][k]=max(f[j][k],f[j-zl[i]][k-tj[i]]+dgc[i]);
        cout<<f[m][v];
    }

     end-

  • 相关阅读:
    8 网站用户密码保存
    10 XSRF和XSS
    评分预测
    社会化推荐
    借助上下文信息
    UGC
    冷启动
    Git秘籍:在 Git 中进行版本回退
    Google在三大系统上停止对Chrome Apps的支持
    Windows 的 AD 域寄生于 Linux 机器
  • 原文地址:https://www.cnblogs.com/zhuier-xquan/p/10506517.html
Copyright © 2011-2022 走看看