-----------------------------------------
题目链接:Miku
----------------------------------------
这道题还是很简单的,暴力DFS,当然,只要你会基础图论(存图)
连边界都不用考虑,就是搜搜搜,记记记,溯溯溯
----------------------------------------
/* 真的,暴力DFS */ #include<iostream> #include<cstring> using namespace std; int tu[60][60];int flag[100]; int anss; int n,m; int x,y,z; int ans; void dfs(int p,int dis) { //统计最大值 ans=max(dis,ans); for(int i=1;i<=n;++i) { if(flag[i]==0&&tu[p][i]>0)//没走过 { flag[i]=1;//记录 dfs(i,dis+tu[p][i]);//搜索 flag[i]=0;//回溯 } } } int main() { cin>>n>>m; for(int i=1;i<=m;++i) { cin>>x>>y>>z; tu[x][y]=tu[y][x]=z;//存图 } for(int i=1;i<=n;++i) { flag[i]=1; dfs(i,0); flag[i]=0;//记录,搜索,回溯每一个点开始的情况 anss=max(anss,ans); //emmmm } cout<<anss;//输出 return 0; }
——————————————
That is all.