zoukankan      html  css  js  c++  java
  • hdu 1574 RP问题 01背包的变形

    hdu 1574 RP问题

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1574

    分析:01背包的变形。

    RP可能为负,所以这里分两种情况处理一下就好。

    初始化要注意。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    #define inf 0x3f3f3f3f
    
    int f[20001],th;
    int a,b,c;
    
    void dp()
    {
    
        f[10000]=0;
        if(a>0)
        {
            for(int i=b+10000;i>=0;i--)
                f[i+a]=max(f[i+a],f[i]+c);
        }
        else if(a<0)
        {
            for(int i=b+10000;i<20001;i++)
                f[i+a]=max(f[i+a],f[i]+c);
        }
    }
    
    int main()
    {
        int t,maxx;
        scanf("%d",&t);
        while(t--)
        {
            maxx=-inf;
            memset(f,-inf,sizeof(f));
            scanf("%d",&th);
            for(int i=1;i<=th;i++)
            {
                scanf("%d%d%d",&a,&b,&c);
                dp();
            }
            for(int i=0;i<20001;i++)
                maxx=max(maxx,f[i]);
            printf("%d
    ",maxx);
        }
        return 0;
    }
    
    //晕死,又因为初始化位置放错了找错误找半天!
    

     疑问:

    初学动态规划,一般是求解是从当前状态由前一个状态得来。一开始我就是这样写状态转移方程的。然而这一个题是当前状态求解下一个状态。

    所以对于两者之间,有点困惑,大神求教!

  • 相关阅读:
    练习5-3 数字金字塔 (15分)
    JSTL标签
    ssm+mysql+jsp打造在线考试系统WeKnow-学生端
    JSP常用内置对象
    mybatis入门2
    mybtis入门
    数据源的作用
    ssm动态查询向前台传json
    ssm中的注解
    ssm中的模糊查询
  • 原文地址:https://www.cnblogs.com/yang-/p/4732759.html
Copyright © 2011-2022 走看看