1 条题解

  • 0
    @ 2022-10-2 15:17:04
    #include<bits/stdc++.h>
    using namespace std;
    int n,k,a[10000],b[10000],f[10000],s;
    void dfs(int deep,int sum){
    	if(sum==k){
    		for(int i=1;i<=deep-1;i++)cout<<b[i]<<' ';
    		exit(0);
    	}
    	if(deep>n)return;
    	for(int i=1;i<=n;i++)
    	if(!f[i]&&sum+a[i]<=k){
    		f[i]=1;
    		b[deep]=a[i];
    		dfs(deep+1,sum+a[i]);
    		f[i]=0;
    	}
    }
    int main(){
    	cin>>n>>k;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    		s+=a[i];
    	}
    	if(s>=k)dfs(1,0);
    	cout<<"No Solution!";
        return 0;
    }
    
    • 1

    信息

    ID
    134
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    (无)
    递交数
    144
    已通过
    27
    上传者