UVA 10986 By ACReaper
来源:互联网 发布:mac词典 编辑:程序博客网 时间:2024/05/21 13:57
这题太水了,就不分析了。直接代码
#include <cstdio>#include <vector>#include <queue>using namespace std;const int maxn = 20006;const int INF = 0x6fffffff;typedef pair<int,int> pii;priority_queue<pii,vector<pii>,greater<pii> >q;vector<pii> g[maxn];void Dijkstra(int src);int d[maxn];int main(){int N,n,m,s,t;scanf("%d",&N);for(int i = 1; i <= N; i++){scanf("%d%d%d%d",&n,&m,&s,&t);int u,v,w;for(int j = 0; j < maxn; j++)g[j].clear();for(int j = 1; j <= m; j++){//Build graph scanf("%d%d%d",&u,&v,&w);g[u].push_back(make_pair(w,v));g[v].push_back(make_pair(w,u));}Dijkstra(s);printf("Case #%d: ",i);if(d[t] < INF)printf("%d\n",d[t]);elseputs("unreachable");}} void Dijkstra(int src){while(!q.empty())q.pop();for(int i = 0; i < maxn; i++)d[i] = INF;d[src] = 0;q.push(make_pair(d[src],src));while(!q.empty()){pii x = q.top();q.pop();int u = x.second;if(x.first != d[u]) continue;for(int j = 0; j < g[u].size(); j++){int v = g[u][j].second;int w = g[u][j].first;if(d[v] > d[u] + w){d[v] = d[u] + w;q.push(make_pair(d[v],v));}}}}2013 05 15
By ACReaper
- UVA 10986 By ACReaper
- UVA 567 By ACReaper
- Uva 11300 By ACReaper
- UVA 10034 By ACReaper
- uva 10369 By ACReaper
- uva 10369 By ACReaper
- UVA 10801 By ACReaper
- UVA 558 判断负环 By ACReaper
- 帕斯卡恒等式 By ACReaper
- 范德蒙很等式 By ACReaper
- 幂取模(数论初步) By ACReaper
- 离散概率初步 By ACReaper
- 表达式树(图论) By ACReaper
- 生成下一个排列 By ACReaper
- 流网络浅析 By ACReaper
- QuickSort简解(分治思想) By ACReaper
- Huffman算法(贪心算法) By ACReaper
- 最优三角划分(动态规划) By ACReaper
- 快速阅读1, 1,阅读两遍比一遍更快,三遍更好,首遍略读,领略其大意,第二遍再快速阅读找重点,第三遍把文章各个点串起来,明确主题思想。
- HttpClient 知识自学
- 冒泡排序法,cpp实现
- 求两链表元素对和为N的所有元素对
- 适配器模式(Adapter)
- UVA 10986 By ACReaper
- Shark:强大的开源C++机器学习库
- php面试题之填空题001
- ps如何(怎么)调整色阶的原理和方法
- 成长与教训——软件工程实验小结<二>
- 整理:Linux网络编程之sockaddr与sockaddr_in,sockaddr_un结构体详细讲解
- linux的文件描述符集fd_set的实现方式
- UVA 10801 By ACReaper
- 网络I/O模型