球球了救救小白! 为啥最后一个点RE呢
查看原帖
球球了救救小白! 为啥最后一个点RE呢
414962
i_8541楼主2020/11/28 11:15
#include <stdio.h>
#include <stdlib.h>
#define maxn 10000
int f[maxn];
int w[maxn][maxn];
int v[maxn][maxn];
int max(int a,int b)
{
    return a>b?a:b;
}
int cc[maxn]
int main()
{
    int m,n;
    scanf("%d %d",&m,&n);
    int a,b,c;
    int i,j,k;
    int num=0;
    while(scanf("%d %d %d",&a,&b,&c)!=EOF){
        num=max(c,num);///num记录组数
        cc[c]++;
        w[c][cc[c]]=a;
        v[c][cc[c]]=b;
    }
    
    for(k=1;k<=num;k++){
        for(j=m;j>=1;j--){
                for(i=1;i<=cc[k];i++){
                if(j>=w[k][i]){
                    f[j]=max(f[j],f[j-w[k][i]]+v[k][i]);
                }

            }
        }
    }

    printf("%d",f[m]);
    return 0;
}
2020/11/28 11:15
加载中...