求调 过样例 8WA+2RE 吸氧 码风不好看 不关注
查看原帖
求调 过样例 8WA+2RE 吸氧 码风不好看 不关注
912248
FuckYouJinhai楼主2024/6/1 18:22
#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;
}
2024/6/1 18:22
加载中...