dengxinyi vor 6 Jahren
Ursprung
Commit
325cf60015
2 geänderte Dateien mit 26 neuen und 0 gelöschten Zeilen
  1. 25 0
      bailian/2755.magic-pocket/main.cc
  2. 1 0
      poj/1163.the-triangle/main.cc

+ 25 - 0
bailian/2755.magic-pocket/main.cc

@@ -0,0 +1,25 @@
+#include <cstdio>
+#include <cstring>
+
+using namespace std;
+
+const int N = 20, V = 40;
+
+int n, a[N], dp[N + 1][V + 1];
+
+int main() {
+  scanf("%d", &n);
+  for (int i = 0; i < n; i++) scanf("%d", &a[i]);
+  memset(dp, 0, sizeof(dp));
+  // dp[i][j] = dp[i - 1][j - a[i]] + dp[i - 1][j]
+  dp[0][0] = 1;
+  for (int i = 1; i <= n; i++) {
+    dp[i][0] = 1;
+    for (int j = 1; j <= V; j++) {
+      if (a[i - 1] <= j) dp[i][j] = dp[i - 1][j - a[i - 1]] + dp[i - 1][j];
+      else dp[i][j] = dp[i - 1][j];
+    }
+  }
+  printf("%d\n", dp[n][V]);
+  return 0;
+}

+ 1 - 0
poj/1163.the-triangle/main.cc

@@ -18,4 +18,5 @@ int main() {
   for (int i = n - 1; 0 < i; i--)
     for (int j = 0; j < i; j++) dp[j] = tri[i - 1][j] + max(dp[j], dp[j + 1]);
   printf("%d\n", dp[0]);
+  return 0;
 }