POJ 3268 Silver Cow Party(Dijkstra算法)
2017-05-13 10:21
387 查看
http://poj.org/problem?id=3268
有编号为1-N的牛,它们之间存在一些单向的路径。给定一头牛的编号,其他牛要去拜访它并且拜访完之后要返回自己原来的位置,求这些牛中所花的最长的来回时间是多少。
这个题可以将被访问的牛看作是 源点 不管是牛来拜访它 还是牛回去 都看成是 源点牛去拜访其他牛即可 这里只需要将时间互换一下即可
AC代码:
有编号为1-N的牛,它们之间存在一些单向的路径。给定一头牛的编号,其他牛要去拜访它并且拜访完之后要返回自己原来的位置,求这些牛中所花的最长的来回时间是多少。
这个题可以将被访问的牛看作是 源点 不管是牛来拜访它 还是牛回去 都看成是 源点牛去拜访其他牛即可 这里只需要将时间互换一下即可
AC代码:
#include <stdio.h> #include <string.h> #define maxinf 0x3f3f3f3f int N,M,D; int A,B,C; int map[1100][1100]; int vis[1100]; int dis[1100]; int count[1100]; void Dijkstra(){ int v; for (int i=1;i<=N;i++){ dis[i]=map[D][i]; vis[i]=0; } dis[D]=0; vis[D]=1; for(int i=1;i<=N;i++){ int mindis=maxinf; for (int j=1;j<=N;j++){ if (!vis[j]&&mindis>dis[j]){ mindis=dis[j]; v=j; } } vis[v]=1; for (int j=1;j<=N;j++){ if (!vis[j]&&dis[j]>map[v][j]+dis[v]){ dis[j]=map[v][j]+dis[v]; } } } } int main(){ int max=-1; scanf ("%d%d%d",&N,&M,&D); for (int i=1;i<=N;i++){ for (int j=1;j<=N;j++){ if (i!=j) map[i][j]=maxinf; else map[i][j]=0; } } for (int i=1;i<=M;i++){ scanf ("%d%d%d",&A,&B,&C); map[A][B]=C; } Dijkstra(); for (int i=1;i<=N;i++){ count[i]=dis[i]; } memset(dis,0,sizeof(dis)); int temp; for (int i=1;i<=N;i++){ for (int j=i;j<=N;j++)//将数组逆置 败在数组逆置 T_T { temp=map[i][j]; map[i][j]=map[j][i]; map[j][i]=temp; } } Dijkstra(); for (int i=1;i<=N;i++){ if (max<count[i]+dis[i]){ max=count[i]+dis[i]; } } printf ("%d\n",max); return 0; }
相关文章推荐
- POJ 3268-Silver Cow Party(dijkstra算法)
- POJ 3268 Silver Cow Party (Dijkstra算法)
- POJ 3268 Silver Cow Party(找最短路径的最大值+两次Dijkstra算法)
- POJ 3268 Silver Cow Party(Dijkstra算法求解来回最短路问题)
- POJ 3268 Silver Cow Party(Dijkstra算法)
- Silver Cow Party(POJ-3268)
- Silver Cow Party poj 3268
- poj_3268 Silver Cow Party
- Silver Cow Party poj 3268 Dijkstra,spfa,+vector
- poj 3268 Silver Cow Party (dijkstra 求最短路)
- Silver Cow Party POJ - 3268
- POJ 3268 Silver Cow Party(Dijkstra)
- POJ-3268 Silver Cow Party( 最短路 )
- poj 3268 Silver Cow Party(dijkstra ++ 双向最短路)
- POJ 3268 Silver Cow Party(SPFA)
- POJ 3268 Silver Cow Party (Dijkstra~)
- POJ-3268-Silver Cow Party
- poj 3268 Silver Cow Party(SPFA)
- POJ 3268 Silver Cow Party
- 最短路径__Silver Cow Party ( Poj 3268 )