1 条题解

  • 0
    @ 2025-2-14 21:20:40

    C :

    #include<stdio.h>
    int N,M;
    int a[1001];
    long long Bag[10001];
    int main()
    {
    	scanf("%d%d",&N,&M);
    	
    	for(int i=1;i<=N;++i)
    	{
    		scanf("%d",&a[i]);
    	}
    	Bag[0]=1;
    	for(int i=1;i<=N;++i)
    	{
    		for(int j=M;j>=a[i];--j)
    		{
    			for(int k=1;k<=j/a[i];++k)
    			{
    				Bag[j]+=Bag[j-k*a[i]];
    			}
    		}
    	}
    	printf("%lld",Bag[M]); 
    	
    	return 0;
    }
    

    C++ :

    #include<iostream>
    #include<cstdio>
    using namespace std; 
    int main()
    {
    	//freopen("mianzhi.in","r",stdin);
    	long long v,n;
    	long long sum[10001]={1};
    	long long value;
    	cin>>v>>n;
    	for(int i=0;i<=v-1;i++)
    	{
    		cin>>value;
    		for(int j=value;j<=n;j++) 
    		{
    			sum[j]+=sum[j-value];
    		}
    	}
    	cout<<sum[n];
    	return 0;
    }
    

    Pascal :

    program pg;
    var f:array[0..10001]of int64;
        n,m,j,i,k:longint;
        a:array[0..30]of longint;
    begin
     readln(n,m);
     for i:=1 to n do
      readln(a[i]);
     fillchar(f,sizeof(f),0);
     f[0]:=1;
     for i:=1 to n do
      for j:=a[i] to m do
       f[j]:=f[j]+f[j-a[i]];
     writeln(f[m]);
    end.
    
    
    • 1

    信息

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