数据太弱了,没有考虑完全
查看原帖
数据太弱了,没有考虑完全
562637
3000ye楼主2023/4/6 16:53

数据有点弱

比如我下面的代码:没过样例,但是能AC,主要问题在于没有考虑:在剩下的时间中,刚好能刷两道题的情况。正确代码,最后那里的判断应该没有=。

#include "bits/stdc++.h"

using namespace std;
typedef long long ll;
typedef long double ld;

const int N = 1e5 + 10;
int v[N], t[N], w[N], dp[N];

void solve() {
    int n, m, k, r; cin >> n >> m >> k >> r;
    for (int i = 1; i <= n; i ++) cin >> v[i];
    for (int i = 1; i <= m; i ++) cin >> t[i];
    for (int i = 1; i <= m; i ++) cin >> w[i];

    sort(v + 1, v + n + 1);

    int res, ans = 0;
    vector<int> ls;
    for (int i = 1; i <= n; i ++) {
        for (int j = r; j >= t[i]; j --) {
            dp[j] = max(dp[j], dp[j - t[i]] + w[i]);

            if (dp[j] >= k) {res = r - j; ls.push_back(res);}
        }
    }

    for (int i = 1; i <= n; i ++) {
        res -= v[i];
        if (res <= 0) break;
        ans ++;
    }

    cout << ans << endl;
}

int main() {
    cin.tie(0);
    ios::sync_with_stdio(false);
    solve();
    return 0;
}
2023/4/6 16:53
加载中...