社区讨论
求调 过样例 8WA+2RE 吸氧 码风不好看 不关注
P1833樱花参与者 1已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @lwvyu0da
- 此快照首次捕获于
- 2024/06/01 18:23 2 年前
- 此快照最后确认于
- 2024/06/01 20:43 2 年前
CPP
#include<bits/stdc++.h>
using namespace std;
int hha, mma, hhb, mmb, n, m;
int dp[1010], u[1000070], w[1000070], v[1000070];
int main() {
scanf("%d:%d %d:%d %d", &hha, &mma, &hhb, &mmb, &n);
int it = n + 1;
for (int i = 1; i <= n; ++i) {
scanf("%d %d %d", &w[i], &v[i], &u[i]);
if (u[i] > 1) {
int p = __lg(u[i]), r = u[i] - (1 << (p + 1)) + 1;
int W = w[i], V = v[i];
w[i] *= r;
v[i] *= r;
u[i] = 1;
for (int j = 0; j <= p; ++j) {
w[it] = W * (1 << j);
v[it] = V * (1 << j);
u[it] = 1;
++it;
}
}
}
m = 60 * hhb + mmb - (60 * hha + mma);
for (int i = 1; i <= it - 1; ++i) {
if (!u[i]) {
for (int j = w[i]; j <= m; ++j)
dp[j] = max(dp[j], dp[j - w[i]] + v[i]);
} else {
for (int j = m; j >= w[i]; --j)
dp[j] = max(dp[j], dp[j - w[i]] + v[i]);
}
}
printf("%d", dp[m]);
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...