dijkstra+dfs模板
来源:互联网 发布:论持久战的影响知乎 编辑:程序博客网 时间:2024/06/03 14:52
算法笔记P384.甲级1018.
void dijkstra(int s){int i,newp=s;mark[s]=1;dis[s]=0;while(1){for(i=0;i<=n;i++){if(mark[i]==0&&dismap[newp][i]<inf){if(dis[i]>dis[newp]+dismap[newp][i]){pre[i].clear();pre[i].push_back(newp);dis[i]=dis[newp]+dismap[newp][i];}else if(dis[i]==dis[newp]+dismap[newp][i]){pre[i].push_back(newp);}}}int min=inf;for(i=0;i<=n;i++){if(mark[i]==0&&dis[i]<inf){if(dis[i]<min){min=dis[i];newp=i;}}}mark[newp]=1;if(min==inf||newp==sp){break;}}}
int optvalue;vector<int>pre[max];vector<int>path,temppath;void dfs(int s){if(s==start){temppath.push_back(s);int value;计算路径temppath上的value值;if(value优于optvalue){optvalue=value;path=temppath;} temppath.pop_back();return;}temppath.push_back(s);int i;for(i=0;i<pre[v].size();i++){dfs(pre[v][i]);}temppath.pop_back();}
//边权之和int value =0,i;for(i=temppath.size()-1;i>0;i--){//i>0int now=temppath[i];int next=temppath[i-1];value=value+v[now][next];}
//点权之和int value =0,i;for(i=temppath.size()-1;i>=0;i--){//i>=0int now=temppath[i];value=value+w[now];}
0 0
- Dijkstra+DFS模板总结
- dijkstra+dfs模板
- dijkstra+dfs
- dijkstra 模板
- dijkstra 模板
- Dijkstra模板
- dijkstra模板
- dijkstra模板
- Dijkstra模板
- (Dijkstra模板)
- Dijkstra模板
- Dijkstra模板
- Dijkstra 模板
- Dijkstra模板
- dijkstra 模板
- dijkstra模板
- dijkstra模板
- dijkstra模板
- 练习 2-3 编写函数 htoi(s),把由十六进制数字组成的字符串(包含可选的前缀 0x 或 0X)转换为与之等价的整型值。字符串中允许包含的数字包括:0~9、a~f 以及 A~F。
- Struts2框架详细用法第一课
- shell脚本定时重启tomcat
- Hint: This may be the result of an unspecified view, due to default view name generation.)]
- springMVC中直接访问controller404
- dijkstra+dfs模板
- ubuntu 14.04 安装qq 2015
- 网站的安全校验
- 万用头文件#include<bits/stdc++.h>
- 处理listview的滑动冲突
- ZooKeeper客户端--java实现
- 免费织梦wap手机网站模板下载
- iOS仿淘宝,上拉进入详情页面
- linux下如何实现mysql数据库每天自动备份定时备份