求助求助快哭了好饿可以帮忙看下吗
查看原帖
求助求助快哭了好饿可以帮忙看下吗
226167
呆呆的她啊楼主2023/10/25 12:23

先放上代码 求求了 调了好久了饭都没吃 巨饿 后面有我出错的问题

#include <iostream>
#include <vector>
#include<cstring>
using namespace std;
int u, v;
int power;
int n, m;int c;
int p = 0;
int maxn = 0;
int vis[25];
//c拿来输入用于根节点使用
//t3拿来搜索求sum
int a[25][25];
//分别对根节点搜索 先搜1 然后把1 的排列组合全部搜一遍 输出最大的sum
void dfs(int num1, int sum1) 
{  
	for (int i = 1; i<=n; i++) //最后一个也要搜索
		{
		if(vis[i]==1||a[num1][i]==0)continue;
		//没路
		else 
		{		cout<<sum1<<" ";
			sum1+=a[num1][i];
			vis[i]=1; 
			cout<<num1<<" "<<i<<" "<<sum1<<" ";
			dfs(i,sum1);
			vis[i]=0;
		sum1-=a[num1][i];
					
		}	
		}	
	if(sum1>maxn)maxn=sum1;
	cout<<maxn<<endl;
	return ;
}
int main() {
	cin >> n >> m;
	memset(vis,0,sizeof(vis));
	//cout<<vis[2];
	for (int i = 1; i <= m; i++) {
		cin >> u;
		cin >> v;
		cin >> power;
		a[u][v] = power;
		a[v][u] = power;
	}//输入完毕 开始dfs
	for (int i = 1; i <= n; i++)
	{   vis[i]=1;
		dfs(i,a[i][1]);  
		vis[i]=0;
	}
	cout<<maxn;
	return 0;
}
2023/10/25 12:23
加载中...