动态规划:背包问题 #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 人评分
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:672 |
整除问题 (C语言代码)浏览:881 |
【出圈】 (C++代码)(典型的约瑟夫环——链表解决)浏览:1203 |
K-进制数 (C++代码)浏览:850 |
【数组的距离】 (C语言代码)浏览:728 |
多输入输出练习1 (C语言代码)浏览:1176 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1137 |
【金明的预算方案】 (C++代码)浏览:837 |
1014题解浏览:484 |
判定字符位置 (C语言代码)浏览:784 |