杭电ACM1712(分组背包)
2015-11-15 15:45
260 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1712
题目大意:ACboy这个学期有N门课程要上,他计划在课程上花费M天,在每门课程上花费的天数不同,则该课程带来的收获也不同(花费天数越多收获越大),要求求ACboy的最大收获。
解题思路:分组背包。
AC代码:
题目大意:ACboy这个学期有N门课程要上,他计划在课程上花费M天,在每门课程上花费的天数不同,则该课程带来的收获也不同(花费天数越多收获越大),要求求ACboy的最大收获。
解题思路:分组背包。
AC代码:
#include <iostream> #include <string.h> using namespace std; #define MAX 105 int main() { int n,m; int a[MAX][MAX]; int dp[MAX]; while(cin>>n>>m) { memset(dp,0,sizeof(dp)); if(n==0&&m==0)break; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { cin>>a[i][j]; } } for(int i=1;i<=n;i++) { for(int j=m;j>=1;j--) { for(int k=1;k<=j;k++) { if((dp[j-k]+a[i][k])>dp[j])dp[j] = dp[j-k]+a[i][k]; } } } cout<<dp[m]<<endl; } return 0; }
相关文章推荐
- 简单的四则运算
- 数的奇偶性
- ACM网址
- 1272 小希的迷宫
- 1272 小希的迷宫
- hdu 1250 大数相加并用数组储存
- 矩阵的乘法操作
- 蚂蚁爬行问题
- 蚂蚁爬行问题
- 求两个数的最大公约数【ACM基础题】
- 打印出二进制中所有1的位置
- 杭电题目---一只小蜜蜂
- HDOJ 1002 A + B Problem II (Big Numbers Addition)
- 初学ACM - 半数集(Half Set)问题 NOJ 1010 / FOJ 1207
- 初学ACM - 组合数学基础题目PKU 1833
- POJ ACM 1002
- POJ 2635 The Embarrassed Cryptographe
- POJ 3292 Semi-prime H-numbers
- POJ 2773 HAPPY 2006
- POJ 3090 Visible Lattice Points