1 条题解

  • 0
    @ 2025-4-12 22:06:17

    C :

    #include<stdio.h>
    #include<string.h>
    int dp[100000];
    int min(int a,int b){return a<b?a:b;}
    int main()
    {
        int n,c,t,i,j;
        while(scanf("%d%d",&n,&t),n,t)
        {
            for(i=0;i<=t;++i)
                dp[i]=65540;
            dp[0]=0;
            for(i=0;i<n;++i)
            {
                scanf("%d",&c);
                for(j=c;j<=t;++j)
                    dp[j]=min(dp[j],dp[j-c]+1);
            }
            printf("%d\n",dp[t]);
        }
        return 0;
    }
     
    /**************************************************************
        Problem: 21811
        User: 12网工_王俊杰
        Language: C
        Result: 正确
        Time:119 ms
        Memory:1480 kb
    ****************************************************************/
    
    • 1

    信息

    ID
    2856
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者