90pts|求大佬帮忙看一下 #6 WA了
查看原帖
90pts|求大佬帮忙看一下 #6 WA了
429818
Smithespics楼主2023/3/18 21:20
#include<algorithm>
using namespace std;
int n;
int dp[1005][20005];

struct Item
{
    int v;
    int w;
}item[1005];

bool comp(struct Item x,struct Item y)
{
    return x.v < y.v;
}

int main()
{
    cin >> n;
    for(int i = 1;i <= n;i++)
        cin >> item[i].w >> item[i].v;

    sort(item+1,item+n+1,comp);

    for(int i = 1;i <= n;i++)
    {
        for(int j = 1;j <= item[n].v;j++)
        {
            if(i == n && j == item[n].v)
            {
                dp[i][j] = item[n].v + dp[i-1][j];
                break;
            }
            if(j < item[i].w)
                dp[i][j] = dp[i-1][j];
            else if(j == item[i].w)
                dp[i][j] = max(dp[i-1][j],item[i].v);
            else if(j > item[i].w)
                dp[i][j] = item[i].v + dp[i-1][j - item[i].w];
        }
    }

    cout << dp[n][item[n].v];
    return 0;
}
2023/3/18 21:20
加载中...