Run ID 作者 问题 语言 测评结果 时间 内存 代码长度 提交时间
92653 sh25_shenpy 0-1背包问题(回溯法) C++ 无测评数据 0 MS 0 KB 609 2026-07-17 11:08:43

Tests(0/0):


#include <cstdio> #include <cstring> #define max(a, b) (((a) > (b)) ? (a) : (b)) int dp[1010][1010]; int w[1010]; int c[1010]; int N, C; void solve() { scanf("%d %d", &N, &C); for(int i = 1; i <= N; i++) scanf("%d", &w[i]); for(int i = 1; i <= N; i++) scanf("%d", &c[i]); for(int i = 1; i <= N; i++) { for(int j = 0; j <= C; j++) { if(j >= c[i]) dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - c[i]] + w[i]); else dp[i][j] = dp[i - 1][j]; } } printf("%d\n", dp[N][C]); } int main() { solve(); return 0; }