热度 3|
#include <iostream> int N, K, G[11], W[11]; int F[15001]; inline int CompletePack(int *F, int *G, int *W) { for (int i = 0; i <= N; ++i) F[i] = 0; for (int i = 1; i <= K; ++i) for (int v = G[i]; v <= N; ++v) if(F[v - G[i]] + W[i] > F[v]) F[v] = F[v - G[i]] + W[i]; return F[N]; } int main() { while(std::cin >> N >> K) { for (int i = 1; i <= K; ++i) { std::cin >> G[i] >> W[i]; } int result = CompletePack(F, G, W); std::cout << result << std::endl; } return(0); } |
小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)
GMT+8, 2024-9-21 11:18
Powered by Discuz! X3.4
© 2001-2023 Discuz! Team.