poj 3268 Silver Cow Party
来源:互联网 发布:linux firewall 编辑:程序博客网 时间:2024/04/30 13:59
思路:单源最短路,套用spfa模板,这里需要构造逆向边,调用两次spfa。
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <queue>using namespace std;const int N = 10009;const int inf = 1<<30;typedef struct node { int v, w, next;}node;node p1[N], p2[N];bool vis[N];int head1[N], head2[N], dis1[N], dis2[N];queue <int> que;int n, m, x;void add_edge(int u, int v, int w, int i) { p1[i].v = v; p1[i].w = w; p1[i].next = head1[u]; head1[u] = i; p2[i].v = u; p2[i].w = w; p2[i].next = head2[v]; head2[v] = i;}void spfa(int dis[], node p[], int head[]) { memset(vis, 0, sizeof(vis)); while (!que.empty()) que.pop(); int i, u, v; for (i = 1; i <= n; ++i) dis[i] = inf; dis[x] = 0; vis[x] = 1; que.push(x); while (!que.empty()) { u = que.front(); que.pop(); for (i = head[u]; i != -1; i = p[i].next) { v = p[i].v; if (dis[v] > dis[u] + p[i].w) { dis[v] = dis[u] + p[i].w; if (!vis[v]) { vis[v] = true; que.push(v); } } } vis[u] = false; }}int main(){ int i, u, v, w; while (scanf("%d %d %d", &n, &m, &x) != EOF) { memset(head1, -1, sizeof(head1)); memset(head2, -1, sizeof(head2)); for (i = 0; i < m; ++i) { scanf("%d %d %d", &u, &v, &w); add_edge(u, v, w, i); } int max_t = -1; spfa(dis1, p1, head1); spfa(dis2, p2, head2); for (i = 1; i <= n; ++i) { if (max_t < dis1[i] + dis2[i]) max_t = dis1[i] + dis2[i]; } printf("%d\n", max_t); } return 0;}
- 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
- 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
- poj 3268 Silver Cow Party
- poj 3268 Silver Cow Party
- DataGridView中限制某列只能输入数字
- OpenGL 3D 超级宝典学习笔记
- String、Pattern、Matcher——java正则
- (转)FFMpeg中apiexample.c例子分析——解码分析
- jsp自定义标签
- poj 3268 Silver Cow Party
- MySQL Migration Tool 乱码解决
- 日本手掌扫描识别ATM机原理分析
- 编程规范一
- 通过gitolite架设git仓库
- 编程规范二
- 云的成功案例,创业公司的希望
- PL/SQL过程和函数
- Android中级教程之----Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)!