大佬们求调!所有样例都过了但是全是re。。
查看原帖
大佬们求调!所有样例都过了但是全是re。。
1035256
white_ice楼主2023/9/18 18:22
#include <bits/stdc++.h>
using namespace std;


int n,p,s;
int w[1003],v[1003];
int f[1005][100003];
signed main(){
    cin >> n >> p >> s;

    for (int i=1;i<=n;i++){
        cin >> w[i] >> v[i];
    }
    for (int i=1;i<=n;i++)
        for (int j=1;j<=n-i;j++)
            if (w[i]>w[i+1]){
                swap(w[i],w[i+1]);
                swap(v[i],v[i+1]);
            }

    for (int i=1;i<=n;i++){
        for (int j=1,k=1;j<=s;j++){
            if (k<w[i]){
                k++;
                j--;
            }
            else {
                f[i][j] = f[i-1][j];
                if(v[i]<=j)
                    f[i][j] = max(f[i-1][j],f[i-1][j-w[i]]+v[i]);
            }
        if (f[i][j]>=p){
            cout<< k;
            return 1;
        }}
    }
    if (f[n][s]<p){
        cout << "No Solution!";
        return -1;
    }
    return 0;
}
2023/9/18 18:22
加载中...