博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷P1294 高手去散步 搜索
阅读量:6605 次
发布时间:2019-06-24

本文共 1457 字,大约阅读时间需要 4 分钟。

洛谷P1294 高手去散步

搜索
求一个图的最长路
从任意点出发 任意点结束的最长路

dfs深搜 枚举 那个点是起点

其实正宗最长路 在中间也要判一下最大
防止图中有负权边

 

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 using namespace std ; 10 11 const int maxn = 21,maxm = 51,inf = 1e9 ; 12 int n,m,cnt,mx ; 13 int head[maxn] ; 14 bool visit[maxn] ; 15 struct node{16 int to,val,pre ; 17 }e[maxm*2];18 19 inline int read() 20 {21 char ch = getchar() ; 22 int x = 0 , f = 1 ; 23 while(ch<'0'||ch>'9') { if(ch=='-') f = -1 ; ch = getchar() ; } 24 while(ch>='0'&&ch<='9') { x = x*10+ch-48 ; ch = getchar() ; } 25 return x * f ; 26 }27 28 inline void add(int x,int y,int v) 29 {30 e[++cnt].to = y ; 31 e[cnt].val = v ;32 e[cnt].pre = head[x] ; 33 head[x] = cnt ; 34 }35 36 inline void dfs(int u,int sum) 37 {38 if(sum > mx) mx = sum ; 39 int v ; 40 visit[ u ] = 1 ; 41 for(int i=head[u];i;i=e[ i ].pre) 42 {43 v = e[ i ].to ; 44 if(!visit[ v ]) 45 dfs(v,sum+e[ i ].val) ; 46 }47 visit[ u ] = 0 ; 48 }49 50 int main() 51 {52 n = read() ; m = read() ; 53 int x,y,v ; 54 mx = -inf ; 55 for(int i=1;i<=m;i++) 56 {57 x = read() ; y = read() ; v = read() ; 58 add(x,y,v) ; add(y,x,v) ; 59 } 60 for(int i=1;i<=n;i++) 61 {62 for(int j=0;j<=n;j++) visit[ j ] = 0 ; // 初始化一下 63 dfs( i,0 ) ; 64 }65 printf("%d",mx) ; 66 return 0 ; 67 }

 

转载于:https://www.cnblogs.com/third2333/p/7093555.html

你可能感兴趣的文章
Swift的ARC和内存泄漏
查看>>
KOA2项目脚手架优化
查看>>
换种方式(思想)封装RecyclerView Adapter,我的利器(TreeRecyclerView)。
查看>>
课程三:使用 GitHub 协作
查看>>
人工智能数学基础----矩阵
查看>>
Android知乎广告效果
查看>>
从HTML5 WebSocket到Socket.io
查看>>
带你了解代理 IP 那些事
查看>>
Activity启动流程源码分析
查看>>
Java类加载机制ClassLoader
查看>>
【翻译】使用React、 Redux 和 SVG 开发游戏(一)
查看>>
iOS_SDK开发_制作静动态库
查看>>
Flutter画板实现
查看>>
牛客网剑指offer java 全部题解
查看>>
spring cloud互联网分布式微服务云平台规划分析--spring cloud系统管理平台
查看>>
Python广为使用的并发处理库futures使用入门与内部原理
查看>>
hadoop(11)--Yarn资源调度源码浅析(有干货,检验是否做过Hadoop优化,以及是否看过源码)...
查看>>
React,Antd组件库按需引入步骤
查看>>
scrapy 爬妹子图
查看>>
selenium中的window handle
查看>>