初始状态会WA???
查看原帖
初始状态会WA???
1152025
MATAIN楼主2024/9/22 21:10

*为什么不能加“dp[v1]=v[1]p[1];”

90pts 代码(WA第九个点)

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll v[10025],p[10025],dp[100025];
int main()
{
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=m;i++) cin>>v[i]>>p[i];
    dp[v[1]]=v[1]*p[1];//为什么???????
    for(int i=1;i<=m;i++)
    {
        for(int j=n;j>=v[i];j--)
        {   
                dp[j]=max(dp[j],dp[j-v[i]]+v[i]*p[i]);
            
        }
    }
    cout<<dp[n]<<endl;



    return 0;
}

AC代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll v[10025],p[10025],dp[100025];
int main()
{
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=m;i++) cin>>v[i]>>p[i];
    //dp[v[1]]=v[1]*p[1]  essential!!!
    for(int i=1;i<=m;i++)
    {
        for(int j=n;j>=v[i];j--)
        {   
                dp[j]=max(dp[j],dp[j-v[i]]+v[i]*p[i]);
            
        }
    }
    cout<<dp[n]<<endl;



    return 0;
}

为什么呢?

2024/9/22 21:10
加载中...