【POJ】3268 - Silver Cow Party
2017-08-22 22:44
281 查看
http://poj.org/problem?id=3268
N 个农场的 N 头牛去农场 X 嗨皮,M 条有向路径。
每头牛来回都挑最短的路走,求它们走的路的最大长度?
做两次spfa。
然后逐个点进行统计。
N 个农场的 N 头牛去农场 X 嗨皮,M 条有向路径。
每头牛来回都挑最短的路走,求它们走的路的最大长度?
做两次spfa。
然后逐个点进行统计。
#include <iostream> #include <algorithm> #include <cstring> #include <queue> using namespace std; const int INF=99999999999; const int maxV=1001; const int maxE=100001; struct Edge{ int to; int val; int next; }e[maxE]; int N,M,X; int num; int head[maxV]; int dis[maxV]; int sum[maxV]; bool vis[maxV]; void add(int from,int to,int val){ e[num].to=to; e[num].val=val; e[num].next=head[from]; head[from]=num++; } void SPFA(){ memset(vis,false,sizeof(vis)); for (int i=1;i<=N;i++){ dis[i]=INF; } dis[X]=0; vis[X]=true; queue <int> q; q.push(X); while (!q.empty()){ int now=q.front(); q.pop(); vis[now]=false; for (int i=head[now];i!=-1;i=e[i].next){ int v=e[i].to; if (dis[v]>dis[now]+e[i].val){ dis[v]=dis[now]+e[i].val; if (!vis[v]){ vis[v]=true; q.push(v); } } } } for (int i=1;i<=N;i++){ sum[i]+=dis[i]; } } int main(){ memset(sum,0,sizeof(sum)); cin >> N >> M >> X; int from[maxE]; int to[maxE]; int val[maxE]; for (int 4000 i=0;i<M;i++){ cin >> from[i] >> to[i] >> val[i]; } num=0; memset(head,-1,sizeof(head)); for (int i=0;i<M;i++){ add(from[i],to[i],val[i]); } SPFA(); num=0; memset(head,-1,sizeof(head)); for (int i=0;i<M;i++){ add(to[i],from[i],val[i]); } SPFA(); int ans=-1; for (int i=1;i<=N;i++){ ans=max(ans,sum[i]); } cout << ans << endl; }
相关文章推荐
- poj 3268 Silver Cow Party
- poj 3268 Silver Cow Party
- Poj 3268 Silver Cow Party (最短路)
- poj 3268 Silver Cow Party 最短路/dijkstra
- poj 3268 Silver Cow Party(最短路+SPFA)
- poj 3268 Silver Cow Party 【最短路,有向图】
- POJ-3268-Silver Cow Party
- POJ 3268 Silver Cow Party (dijkstra)
- poj 3268 Silver Cow Party (最短路算法的变换使用 【有向图的最短路应用】 )
- POJ 3268 Silver Cow Party
- POJ 3268 Silver Cow Party
- POJ 3268 - Silver Cow Party
- POJ 3268 Silver Cow Party
- POJ 3268 Silver Cow Party
- POJ 3268 Silver Cow Party
- POJ 3268——Silver Cow Party——————【最短路、Dijkstra、反向建图】
- POJ - 3268 Silver Cow Party解题报告(dijkstra分别求单源起点和单源终点的最短路)
- ShortestPath:Silver Cow Party(POJ 3268)
- POJ 3268 Silver Cow Party 最短路—dijkstra算法的优化。
- poj 3268 Silver Cow Party