标签:
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2546
1 #include<iostream> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 6 int meal[1005]; 7 int dp[1005]; 8 int n, m; 9 10 int main(){ 11 ios::sync_with_stdio( false ); 12 13 while( cin >> n, n ){ 14 meal[0] = 0; 15 16 for( int i = 1; i <= n; i++ ) 17 cin >> meal[i]; 18 sort( meal + 1, meal + n + 1 ); 19 cin >> m; 20 21 memset( dp, 0, sizeof( dp ) ); 22 23 if( m < 5 ){ 24 cout << m << endl; 25 continue; 26 } 27 28 for( int i = 1; i < n; i++ ){ 29 for( int j = m-5; j >= meal[i]; j-- ) 30 if( dp[j] < dp[j - meal[i]] + meal[i] ) 31 dp[j] = dp[j - meal[i]] + meal[i]; 32 } 33 34 cout << m - dp[m - 5] - meal[n] << endl; 35 } 36 37 return 0; 38 }
标签:
原文地址:http://www.cnblogs.com/hollowstory/p/5361150.html