P1294 高手去散步

-----------------------------------------

题目链接: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;
}
AC

——————————————

That is all.

原文地址:https://www.cnblogs.com/For-Miku/p/10883803.html