Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 13532 Accepted Submission(s): 6876
const int maxn = 10010; int cost[5] = { 0, 150, 200, 350, 0 }; int dp[maxn]; int m; int main() { int T; scanf("%d", &T); while (T --) { scanf("%d", &m); memset(dp, 0, sizeof(dp)); for (int i = 1; i <= 3; i ++) { for (int j = cost[i]; j <= m; j ++) { dp[j] = max(dp[j-cost[i]] + cost[i], dp[j]); } } printf("%d\n", m - dp[m]); } return 0; }
原文:http://www.cnblogs.com/LinKArftc/p/4905184.html