rqnoj[2]开心的金明

rqnoj[2]开心的金明

很简单的一题,但是对DP很不熟悉,这好像也是第一次自己写dp的题目,写下错误吧。
#include <stdio.h>
int main()
{
    long n,m,i,j,a[30001]={0},v[26],w[26];
    
    scanf("%ld%ld",&n,&m);
    for(i=0;i<m;i++)
    scanf("%ld%ld",&v[i],&w[i]);
   
    for(i=0;i<m;i++)
        for(j=n;j>=v[i];j--)
            if(a[j-v[i]]+v[i]*w[i]>a[j])a[j]=a[j-v[i]]+v[i]*w[i];
            
    printf("%ld",a[n]);
    
    return 0;
}
很基础的一题,但是在开始对n和m的含义弄混了,导致无输出。
后来在for(j=n;j>=v[i];j--)
中判断条件设成了j>0   没用弄清具体含义,下次要注意。
           

你可能感兴趣的:(rqnoj[2]开心的金明)