初学dfs,求debug
查看原帖
初学dfs,求debug
772488
LeiSZ楼主2025/1/21 20:12
#include<bits/stdc++.h>
using namespace std;
int n,m,ans;
int a[51][4]; 
bool v[21];
                //depth
void dfs(int vis,int f,int sum){
	
	if(f>n){
		ans=max(ans,sum);
		
		//cout<<"ans:"<<ans<<" sum:"<<sum<<endl;//全是0 
		return;
	}
	for(int i=1;i<=n;i++){
		if(a[i][1]==vis){
			if(v[a[i][1]]==0){
				v[a[i][1]]=1;
				dfs(a[i][1],f+1,sum+a[i][3]);
				v[a[i][1]]=0;
			}
		}
		if(a[i][2]==vis){
			if(v[a[i][2]]==0){
				v[a[i][2]]=1;
				dfs(a[i][2],f+1,sum+a[i][3]);
				v[a[i][2]]=0;
			}
		}
	}
	//cout<<"ans:"<<ans<<" sum:"<<sum<<endl;//还是全是0 
	return;
}

int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>a[i][1]>>a[i][2]>>a[i][3];
	}
	for(int i=1;i<=n;i++){
		v[i]=1;
		dfs(i,0,0);
		memset(v,0,sizeof(v));
		v[i]=0;
	}
	cout<<ans;
	return 0;
}

输出就一个“0”
很懵QAQ

2025/1/21 20:12
加载中...