HDU 1712 ACboy needs your help

 

http://acm.hdu.edu.cn/showproblem.php?pid=1712

赤裸裸的分组背包

View Code
#include <iostream>

using namespace std ;

int dp[101] ;

int val[101][101] ;

int main()

{

    int n,m ;

    while(scanf("%d%d",&n,&m),(n||m))

    {

        for(int i=1;i<=n;i++)

            for(int j=1;j<=m;j++)

                scanf("%d",&val[i][j]) ;

        memset(dp,0,sizeof(dp)) ;

        for(int i=1;i<=n;i++)

            for(int j=m;j>=1;j--)

                for(int k=1;k<=j;k++)//这里注意不能超过背包上限 

                        dp[j]=max(dp[j],dp[j-k]+val[i][k]) ;

        printf("%d\n",dp[m]) ;

    } 

    return 0 ;

}

 

你可能感兴趣的:(help)