hdu 1712 ACboy needs your help(分组背包入门)
来源:互联网 发布:架子鼓软件哪个好 编辑:程序博客网 时间:2024/05/22 02:28
ACboy needs your help
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4185 Accepted Submission(s): 2220
Problem Description
ACboy has N courses this term, and he plans to spend at most M days on study.Of course,the profit he will gain from different course depending on the days he spend on it.How to arrange the M days for the N courses to maximize the profit?
Input
The input consists of multiple data sets. A data set starts with a line containing two positive integers N and M, N is the number of courses, M is the days ACboy has.
Next follow a matrix A[i][j], (1<=i<=N<=100,1<=j<=M<=100).A[i][j] indicates if ACboy spend j days on ith course he will get profit of value A[i][j].
N = 0 and M = 0 ends the input.
Next follow a matrix A[i][j], (1<=i<=N<=100,1<=j<=M<=100).A[i][j] indicates if ACboy spend j days on ith course he will get profit of value A[i][j].
N = 0 and M = 0 ends the input.
Output
For each data set, your program should output a line which contains the number of the max profit ACboy will gain.
Sample Input
2 21 21 32 22 12 12 33 2 13 2 10 0
Sample Output
346
分组背包入门题
代码:
//15ms#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <vector>using namespace std;const int maxn=100+10;int a[maxn][maxn];int dp[maxn];int main(){ int n,m; while(~scanf("%d%d",&n,&m)) { if(n==0&&m==0) break; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) scanf("%d",&a[i][j]); } memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++)//根据不同课程分组 { for(int v=m;v>=1;v--)//枚举不同容量 { for(int j=1;j<=v;j++)//不同时间的课程 { dp[v]=max(dp[v],dp[v-j]+a[i][j]); } } } printf("%d\n",dp[m]); } return 0;}
0 0
- hdu 1712 ACboy needs your help(分组背包入门)
- hdu 1712 ACboy needs your help(分组背包入门题)
- HDU-1712 ACboy needs your help (分组背包 入门题)
- HDU 1712 ACboy needs your help(分组背包)
- 【hdu 1712】ACboy needs your help (分组背包)
- hdu 1712 ACboy needs your help(分组背包)
- hdu 1712 ACboy needs your help(分组背包)
- hdu 1712 ACboy needs your help(分组背包)
- HDU 1712 ACboy needs your help(DP 分组背包)
- hdu 1712 ACboy needs your help (分组背包)
- hdu 1712ACboy needs your help 01背包(分组)
- hdu 1712 ACboy needs your help (分组背包)
- HDU 1712 - ACboy needs your help(分组背包)
- HDU 1712 ACboy needs your help(分组背包)
- HDU 1712 ACboy needs your help (分组背包问题)
- hdu 1712 ACboy needs your help(分组背包)
- hdu 1712 ACboy needs your help (分组背包)
- HDU 1712 ACboy needs your help (简单分组背包)
- jxl--java操作excel
- 剑指Offer:面试题39 二叉树的深度
- Python学习【2】基本输入输出语句
- poj 3498(枚举人数+最大流) 满满都是泪
- ZOJ-1708
- hdu 1712 ACboy needs your help(分组背包入门)
- 剑指Offer:面试题40 数组中只出现一次的数字
- 苹果种植成为群众增收致富有效途径
- Linux中单引号(''),双引号("")与反单引号(``)的用法与区别
- UVA - 11992
- Android开发之反编译与防止反编译
- java学习之---多线程
- c++笔试题
- ruby连接mysql数据库