QQ扫一扫联系
#include<iostream> using namespace std; const int V=100; int n,m,ans,e[V][V]; bool visited[V]; void dfs(int x,int len) { int i; visited[x]= true; if(len>ans) ans=len; for(i=1;i<=n;i++) if( (!visited[i]) && (e[x][i]!=-1) ) dfs(i,len+e[x][i]); visited[x]=false; } int main() { int i,j,a,b,c; cin>>n>>m; for(i=1;i<=n;i++) for(j=1;j<=m;j++) e[i][j]=-1; for(i=1;i<=m;i++) { cin>>a>>b>>c; e[a][b]=c; e[b][a]=c; } for(i=1;i<=n;i++) visited[i]=false; ans=0; for(i=1;i<=n;i++) dfs(i,0); cout<<ans<<endl; return 0; }
输入:
4 6
1 2 10
2 3 20
3 4 30
4 1 40
1 3 50
2 4 60
输出: