动态规划:背包问题 #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分
1 人评分
星期判断机 (C语言代码)浏览:795 |
矩形面积交 (C++代码)浏览:1065 |
【偶数求和】 (C语言代码)浏览:422 |
钟神赛车 (C语言代码)浏览:556 |
C语言程序设计教程(第三版)课后习题12.5 (C语言代码)浏览:729 |
C语言程序设计教程(第三版)课后习题8.2 (C语言代码)浏览:998 |
简单的a+b (C语言代码)浏览:497 |
C语言训练-字符串正反连接 (C语言代码)浏览:622 |
【魔板】 (C++代码)浏览:1111 |
快速排序算法1浏览:855 |