hdu 1712 ACboy needs your help (DP)

来源:互联网 发布:mac最新系统怎么升级 编辑:程序博客网 时间:2024/05/01 12:04

点击打开链接

题目意思:

给你n门课和m天,以及a[i][j] (表示第i门课花费j天所能收获的效益);

求n门课花费m天所能达到的最大效益。。

分组背包;dp[i][j]:i门课花费m天所能达到的最大收益

dp[i][j]=1: dp[i][j];

    2:max(dp[i-1][j],dp[i-1][j-k]+a[k]);(k<=j)

#include"stdio.h"#include"string.h"#define MAX(a,b) a>b?a:bint dp[101][101];int main(){int n,m,i,j,k;int a[101][101];while(scanf("%d%d",&n,&m),n+m){for(i=1;i<=n;i++){for(j=1;j<=m;j++)scanf("%d",&a[i][j]);}memset(dp,0,sizeof(dp));for(i=1;i<=n;i++){for(j=1;j<=m;j++)for(k=1;k<=m;k++)if(k<=j){int max=MAX(dp[i-1][j],dp[i-1][j-k]+a[i][k]);dp[i][j]=MAX(dp[i][j],max);}}printf("%d\n",dp[n][m]);}return 0;}




原创粉丝点击