先放上代码 求求了 调了好久了饭都没吃 巨饿 后面有我出错的问题
#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;
}