蒟蒻求助
查看原帖
蒟蒻求助
638371
152chenzihao楼主2023/1/30 09:18
#include<bits/stdc++.h>
using namespace std;

int N,M,a[105],Moss[105],tt,ttn;
bool bj[105];

void dfs(int m){
	tt=0;
	for(int i=1;i<=m-1;i++){
		tt+=Moss[i];
		if(tt==M){
			ttn++;
//			for(int i=1;i<=m-1;i++){
//				cout<<Moss[i]<<" ";
//			}
//			cout<<endl;
			return;
		}
	}
	for(int i=1;i<=N;i++){
		if(bj[i]){
			continue;
		}
		Moss[m]=a[i];
		bj[i]=true;
		dfs(m+1);
		bj[i]=false;
	}
}

int main(){
	cin>>N>>M;
	for(int i=1;i<=N;i++){
		cin>>a[i];
	}
	dfs(1);
	cout<<ttn;
}

使用的是深度优先搜索,但是不知道怎样写标记,求大佬解答

2023/1/30 09:18
加载中...