poj3268
来源:互联网 发布:淘宝客户信誉查询 编辑:程序博客网 时间:2024/06/06 01:33
集训第一周周末训练的迪杰斯特拉,求来回某点的最长时间,路是单向的,于是我把它做成从该点出发,用两种路走两遍
#include<iostream>#include<cstdio>#include<cstring>#include<cctype>#include<vector>#include<queue>#include<algorithm>using namespace std;const int NNN = 9999999;const int NN = 1050;int road[NN][NN];int road2[NN][NN];int dis[NN];int vis[NN];int N, M, K;int DDD[NN];void DIS(int x,int road[NN][NN]){int i;int j;int ans;int v;ans = NNN;dis[x] = 0;vis[x] = 1;for (i = 1; i <= N; i++)dis[i] = road[x][i];for (j = 1; j <= N; j++){ans = NNN;for (i = 1; i <= N; i++){if (dis[i] < ans && !vis[i]){ans = dis[i];v = i;}}vis[v] = 1;for (i = 1; i <= N; i++){dis[i] = min(dis[i], dis[v] + road[v][i]);}}}int main(){int i, j;int a, b;int x, y;while (cin >> N){a = b = x = y = 0;memset(dis, NNN, sizeof(dis));memset(vis, 0, sizeof(vis));memset(DDD, 0, sizeof(DDD));for (i = 0; i < NN; i++)for (j = 0; j < NN; j++){if (i != j){road[i][j] = NNN;road2[i][j] = NNN;}else{road[i][j] = 0;road2[i][j] = 0;}}cin >> M >> y;for (i = 0; i < M; i++){cin >> a >> b;cin >> road[a][b];road2[b][a] = road[a][b];}memset(dis, NNN, sizeof(dis));memset(vis, 0, sizeof(vis));DIS(y,road);for (i = 1; i <= N; i++)if (i != y){DDD[i] += dis[i];}memset(dis, NNN, sizeof(dis));memset(vis, 0, sizeof(vis));DIS(y, road2);for (i = 1; i <= N; i++)if (i != y){DDD[i] += dis[i];//cout << i << " " << DDD[i] << endl;//cout << dis[i] << endl;}DDD[y] = 0;sort(DDD + 1, DDD + 1 + N);cout << DDD[N] << endl;}return 0;}
阅读全文
0 0
- poj3268
- poj3268
- poj3268
- poj3268
- POJ3268
- poj3268
- poj3268
- poj3268
- POJ3268
- poj3268
- poj3268
- poj3268
- poj3268
- POJ3268
- poj3268
- poj3268
- poj3268---spfa
- POJ3268 SPFA
- 深入浅出妙用 Javascript 中 apply、call、bind
- d3.js力导向图节点间多连接线对称绘制
- hdu 5952 Counting Cliques(dfs优化) 2016ACM/ICPC亚洲区沈阳站
- 设计模式之抽象工厂
- 算法入门经典第三章习题(2)
- poj3268
- 通俗易懂看RB-tree(二)
- vsftpd配置文件详解
- POJ 1797Heavy Transportation Dijkstra变形与优化
- 国外15种手机游戏引擎和开发工具介绍
- 面试OR笔试17——最小排列数
- dbms_stats.set_system_stats 使用
- Android Api demo系列(9) (App>Activity>SecureDialog)
- 微信开发入门