基础最短路四 POJ3268
来源:互联网 发布:linux 删除路由 编辑:程序博客网 时间:2024/05/19 03:22
POJ 3268 :http://poj.org/problem?id=3268
n为1000,m为100000
题目大意: 有很多牛分别从点X出发,到达各点,并返回回点X,问这些牛中经过的的最短路中,最大的最短路为多少。
其实就是以X为起点的最短路,然后将边反转方向一下,再求一次最短路。
两次和相加起来,扫一遍得到最大最短路。。。。
用pos保存了每条边,两次输入到 edge里面。
RE了很多次,后来发现错误是,把边数默认为 1000了。
依然是Spfa,很好用:
#include"cstdio"#include"iostream"#include"cstring"#include"algorithm"#include"vector"#include"cmath"#include"queue"using namespace std;#define INF 9999999#define inf 1009#define loop(x,y,z) for(x=y;x<z;x++)#define ll long longint n,m,s;int book[inf];int dis[inf];int ans[inf];int pos[100009][3];queue<int>q;struct node{ int to,w; node(int i,int j) { to=i; w=j; }};vector<node>edge[inf];void init(){ int i; loop(i,1,n+1) edge[i].clear(); loop(i,1,n+1) dis[i]=INF; dis[s]=0; memset(book,0,sizeof book); while(!q.empty())q.pop();}void Spfa(){ q.push(s); book[s]=1; int i; while(!q.empty()) { int u=q.front(); q.pop(); book[u]=0; int len=edge[u].size(); loop(i,0,len) { node& e=edge[u][i]; if(dis[e.to]>dis[u]+e.w) { dis[e.to]=dis[u]+e.w; if(!book[e.to]) { q.push(e.to); book[e.to]=1; } } } }}int main(){ int i,j,k; scanf("%d%d%d",&n,&m,&s); loop(i,0,m) scanf("%d%d%d",&pos[i][0],&pos[i][1],&pos[i][2]); memset(ans,0,sizeof ans); init(); loop(i,0,m) edge[pos[i][0]].push_back(node(pos[i][1],pos[i][2])); Spfa(); loop(i,1,n+1) ans[i]+=dis[i]; init(); loop(i,0,m) edge[pos[i][1]].push_back(node(pos[i][0],pos[i][2])); Spfa(); loop(i,1,n+1) ans[i]+=dis[i]; int big=0; loop(i,1,n+1) if(ans[i]>big) big=ans[i]; printf("%d\n",big); return 0;}
0 0
- 基础最短路四 POJ3268
- POJ3268之最短路
- poj3268最短路Dijkstrra
- 最短路 dijkstra---poj3268
- poj3268 最短路
- POJ3268【最短路】
- POJ3268 最短路
- POJ3268最短路水题
- poj3268(最短路,dijkstra)
- POJ3268 Silver Cow Party DIJ最短路
- POJ3268 Silver Cow Party 最短路
- 【POJ3268】Silver Cow Party 最短路
- poj3268 Silver Cow Party(最短路变形)
- POJ3268 Silver Cow Party(最短路问题)
- poj3268 Silver Cow Party【最短路】
- 最短路(SPFA+负权回路的判断)-poj3268
- POJ3268—Silver Cow Party(反向最短路)
- POJ3268 Silver Cow Party spfa求解 最短路
- Spring Boot 性能优化
- 关系型数据库和关系型数据库管理系统
- php视频格式转换---------ffmpeg-php扩展与ffmpeg.exe安装与使用
- 练习
- axis1.4 设立请求超时时间——call.setTimeout();
- 基础最短路四 POJ3268
- 机器学习之自己实现决策树
- jsvascript === 和==的区别
- shuffle()重排数组
- webswebstorm快捷键
- java中的值传递
- Html blockquote标记
- java se 05
- java IO流分析:ByteArrayInputstream 和 BufferedInputStream