1 条题解
-
0
完全背包
表示当前花费不超过 个金币能获得的最大额外价值。
对于第 天的第 件物品:
- 不买:
- 买了第二天卖出:
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int N = 105, M = 1e4 + 5; const int INF = 0x3f3f3f3f, MOD = 1E9 + 7; int t, n, m, p[N][N], f[M]; int main(int argc, char* argv[]) { cin >> t >> n >> m; for (int i = 1; i <= t; i++) for (int j = 1; j <= n; j++) cin >> p[i][j]; for (int i = 1; i < t; i++) { memset(f, 0x00, sizeof f); for (int j = 1; j <= n; j++) for (int k = p[i][j]; k <= m; k++) f[k] = max(f[k], f[k - p[i][j]] + p[i + 1][j] - p[i][j]); m += f[m]; } cout << m; return 0; }
- 1
信息
- ID
- 939
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 129
- 已通过
- 69
- 上传者