题目链接
dfs,挨个去遍历就好
**import java.util.*;
import java.io.*;
import java.math.*;
public class Main {
public static int n,m,res=0;;
public static int[][] union;
public static List<Integer> l=new ArrayList<Integer>();
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
m=sc.nextInt();
union=new int[n][n];
for(int i=0;i<m;i++){
int a=sc.nextInt();
int b=sc.nextInt();
int c=sc.nextInt();
union[a-1][b-1]=c;
union[b-1][a-1]=c;
}
for(int i=0;i<n;i++){
l.add(i);
dfs(i,0);
l.clear();
}
System.out.println(res);
}
public static void dfs(int cur,int sum){
//System.out.println(cur+" "+sum);
if(l.size()==n){
res=Math.max(res,sum);
return;
}
int b=0;
for(int i=0;i<n;i++){
if(union[cur][i]!=0&&!l.contains(i)){
l.add(i);
dfs(i,sum+union[cur][i]);
l.remove(l.size()-1);
}
if(union[cur][i]==0||(union[cur][i]!=0&&l.contains(i))){
b++;
}
}
if(b==n){
res=Math.max(res,sum);
return;
}
}
}
**