poj 3268 (dijkstra)
来源:互联网 发布:合肥宝德网络 编辑:程序博客网 时间:2024/05/05 20:48
这里写链接内容 http://poj.org/problem?id=3268
题目意思 :有n个牛分别在n个农场,每个牛都需要从自己的农场到另一个大牛的农场参加生日聚会,问这些牛中去和返回用时的最长的时间是多少。
思路:因为我没有仔细想考吧,wa了很多次,这道题对于我来说还是挺简单的,写的时候考虑到了一个问题,但是当时没有去想,就wa了好几次,也没改出来,心不仔细,挺难受的,也总是会犯这样的错误,希望以后慢慢地改了吧,就是去和返回最短路求一下,最后加在一起求最长的时间
#include<stdio.h>#include<algorithm>#include<string.h>#include<iostream>using namespace std;const int INF=0x3f3f3f3f;const int N=1005;int e[N][N],e1[N][N],book[N],dis[N],dis1[N];int i,j,n,m,x;void dijkstra(){ memset(book,0,sizeof(book)); for(i=1; i<=n; i++) { dis[i]=e[x][i]; //dis1[i]=e1[x][i]; } dis[x]=0; //dis1[x]=0; book[x]=1; int min,u; for(i=1; i<=n-1; i++) { min=INF; u=0; for(j=1; j<=n; j++) { if(book[j]==0&&dis[j]<min) { min=dis[j]; u=j; } } if(min==INF) break; book[u]=1; for(int v=1; v<=n; v++) { if(e[u][v]<INF&&dis[v]>dis[u]+e[u][v]) dis[v]=dis[u]+e[u][v]; } }}void dijkstra1(){ memset(book,0,sizeof(book)); for(i=1; i<=n; i++) { // dis[i]=e[i][x]; dis1[i]=e1[x][i]; } // dis[x]=0; dis1[x]=0; book[x]=1; int min1,u1; for(i=1; i<=n-1; i++) { min1=INF; u1=0; for(j=1; j<=n; j++) { if(book[j]==0&&dis1[j]<min1) { min1=dis1[j]; u1=j; } } if(min1==INF) break; book[u1]=1; for(int v=1; v<=n; v++) { if(e1[u1][v]<INF&&dis1[v]>dis1[u1]+e1[u1][v]) dis1[v]=dis1[u1]+e1[u1][v]; } }}int main(){ int a,b,t; while(~scanf("%d%d%d",&n,&m,&x)) { for(i=1; i<=n; i++) { for(j=1; j<=n; j++) { if(i==j) { e[i][j]=0; e1[i][j]=0; } else { e[i][j]=INF; e1[i][j]=INF; } } } for(i=1; i<=m; i++) { scanf("%d %d %d",&a,&b,&t); e[b][a]=t; e1[a][b]=t; } dijkstra(); dijkstra1(); int max=-1; for(i=1; i<=n; i++) { if(dis1[i]+dis[i]<INF&&dis[i]+dis1[i]>max) max=dis1[i]+dis[i]; } printf("%d\n",max); } return 0;}
0 0
- poj 3268 dijkstra
- POJ 3268 dijkstra算法
- poj 3268 dijkstra
- Poj 3268(Dijkstra)
- poj 3268 dijkstra
- POJ 3268 双向Dijkstra
- poj 3268 dijkstra
- poj 3268 Dijkstra运用
- poj 3268 (dijkstra)
- POJ 3268 基本dijkstra
- POJ 3268 (dijkstra变形)
- poj 3268 双向dijkstra
- poj 3268 dijkstra
- POJ 3268 Dijkstra算法
- Dijkstra POJ
- POJ 3268 Silver Cow Party(Dijkstra算法)
- POJ 3268 dijkstra()正反矩阵
- POJ 3268 - Silver Cow Party(dijkstra)
- WordPress 获取文章内容页特色图像地址
- C#通过webservice连接Oracle 9i数据库
- 时间序列实战(一)
- kudu master design(kudu主节点设计)
- 顶点着色器(1)
- poj 3268 (dijkstra)
- Python 内部函数
- Swift-(do/repeat)while循环
- 基址和偏移量
- Hibernate学习之旅(1)
- ubuntu下安装angular2开发环境
- 仿微信朋友圈图片查看器
- 游戏注入教程(二)--HOOK注入
- 编程实现:每瓶汽水1元,两个空瓶可以置换一瓶汽水,现在有20元,最多能喝多少瓶汽水