HDU1712二维01背包

来源:互联网 发布:一张银行卡能开淘宝吗 编辑:程序博客网 时间:2024/06/10 03:54

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

背包容量有考试门数和给的复习天数

状态转移公式:dp[i][j]=max(dp[i][j],dp[i-1][i-c[i]]+w[i]);

#include <iostream>#include <cstdio>#include <cstring>using namespace std;int dp[105][105];int matrix[105][105];int main(){    int n,m;    while(cin>>n>>m)    {        if(!n&&!m)            break;        int count=0;        for(int i=1;i<=n;i++)        {            for(int j=1;j<=m;j++)            {                cin>>matrix[i][j];            }        }        memset(dp,0,sizeof(dp));        for(int i=1;i<=n;i++)        {            for(int j=1;j<=m;j++)            {                for(int k=j;k>=0;k--)                    dp[i][j]=max(dp[i][j],dp[i-1][j-k]+matrix[i][k]);            }        }        cout<<dp[n][m]<<endl;    }    return 0;}



0 0
原创粉丝点击