栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 3268 Silver Cow Party

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 3268 Silver Cow Party

#include <iostream>#include <cstdio>#include <algorithm>#include <climits>using namespace std;const int N = 1005;int edge[N][N];int n, e, x;int mindis1[N];int mindis2[N];bool vis1[N];bool vis2[N];void init(){for (int i = 0; i < n; ++i) {for (int j = 0; j < n; ++j){edge[i][j] = -1;}}}void dijkstra(int s){int pos1, pos2, te1, te2, tm1, tm2;for (int i = 0; i < n; ++i) {vis1[i] = false;vis2[i] = false;mindis1[i] = 999999;mindis2[i] = 999999;}mindis1[s] = 0;mindis2[s] = 0;vis1[s] = true;vis2[s] = true;pos1 = s;pos2 = s;for (int i = 0; i < n - 1; ++i){for (int j = 0; j < n; ++j){if (!vis1[j] && edge[pos1][j] != -1 &&  mindis1[pos1] + edge[pos1][j] < mindis1[j]){mindis1[j] = mindis1[pos1] +edge[pos1][j];}if (!vis2[j] && edge[j][pos2] != -1 && mindis2[pos2] + edge[j][pos2] < mindis2[j]){mindis2[j] = mindis2[pos2] + edge[j][pos2];}}tm1 = 999999;tm2 = 999999;for (int j = 0; j < n; ++j){if (!vis1[j] && mindis1[j] < tm1){tm1 = mindis1[j];te1 = j;}if (!vis2[j] && mindis2[j] < tm2){tm2 = mindis2[j];te2 = j;}}vis1[te1] = true;pos1 = te1;vis2[te2] = true;pos2 = te2;}}int main(){int beg, end, dis;scanf("%d%d%d", &n, &e, &x);init();for (int i = 0; i < e; ++i){scanf("%d%d%d", &beg, &end, &dis);--beg;--end;edge[beg][end] = dis;}dijkstra(--x);int ans = 0;for (int i = 0; i < n; ++i){if (i == x) continue;if (mindis1[i] + mindis2[i] > ans) ans = mindis1[i] + mindis2[i];}printf("%dn", ans);return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/376492.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号