1 solutions

  • 0
    @ 2025-11-5 17:24:25

    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

    Information

    ID
    18394
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By