救:
#include<bits/stdc++.h>
using namespace std;
bool vis[25];
int ans[25];
int n,x,maxw = -1;
struct node
{
int s,e,l;
};
node o[100];
bool end()
{
for(int i = 1;i <= n;i++)
{
if(vis[i] == false) return false;
}
return true;
}
void dfs(int now_place,int now_long)
{
if(end())
{
if(now_long > maxw)
{
maxw = now_long;
}
}
else
{
for(int i = 1;i <= x;i++)
{
if(!vis[o[i].e] && !vis[o[i].s] && o[i].s == now_place)
{
vis[o[i].e] = true;
vis[o[i].s] = true;
dfs(o[i].e,now_long+o[i].l);
vis[o[i].e] = false;
vis[o[i].s] = false;
}
}
//cout<<now_long<<" "<<vis[1]<<" "<<vis[2]<<" "<<vis[3]<<" "<<vis[4]<<endl;
}
}
int main()
{
int s,e,l;
cin>>n>>x;
for(int i = 1;i <= x;i++)
{
cin>>s>>e>>l;
o[i] = (node){s,e,l};
}
for(int i = 1;i <= n;i++)
{
dfs(i,0);
//cout<<"=========="<<endl;
}
cout<<maxw;
return 0;
}
求解答~~