社区讨论

求调 过样例 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 条回复,欢迎继续交流。

正在加载回复...