动态规划:背包问题 #include<iostream> #include<cstring> #include<algorithm> using namespace std; int dp[26][30000]; int main(void) { int money , n , i , j , val[26] , im[26] ; cin >> money >> n ; for(i=1;i<=n;i++) cin >> val[i] >> im[i] ; memset(dp,0,sizeof(dp)); for(i=1;i<=n;i++) { for(j=0;j<=money ; j++ ) { if( j >= val[i] ) dp[i][j]=max(dp[i-1][j] , dp[i-1][j-val[i]]+ im[i]*val[i] ); else dp[i][j] = dp[i-1][j]; } } cout << dp[n][money]; return 0; }
0.0分
2 人评分
简单的a+b (C语言代码)浏览:675 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:729 |
【数组的距离】 (C语言代码)浏览:780 |
数组输出 (C语言代码)错误???浏览:599 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:908 |
【亲和数】 (C语言代码)浏览:540 |
C语言训练-计算t=1+1/2+1/3+...+1/n (C语言代码)浏览:935 |
C语言程序设计教程(第三版)课后习题6.5 (C++代码)浏览:484 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:569 |
母牛的故事 (C语言代码)浏览:1449 |