北大ACM2387——Til the Cows Come Home
来源:互联网 发布:python ppt 编辑:程序博客网 时间:2024/06/05 18:44
题目的意思是求解从路标N到路标1的最短路径,简单的最短路径题目,Dijkstra或者Bellman_Ford算法都可以过。
题目有一个坑:输入有重边,所以要选择最小的长度。
下面是AC的代码:
#include <iostream>#include <cstdio>using namespace std;int cost[1005][1005];bool vis[1005];int dis[1005];const int INF = 100000000;int N, T;int min(int x, int y){return x > y ? y : x;}void Dijkstra() //求最短路径{int i;for(i = 1; i <= N; i++){vis[i] = false;dis[i] = INF;}dis[N] = 0;while(true){int v = -1;for(i = 1; i <= N; i++) //从没有选取的顶点中选一个距离最小的顶点{if(!vis[i] && (v == -1 || dis[i] < dis[v]))v = i;}if(v == -1) //全部选取完,退出break;vis[v] = true;for(i = 1; i <= N; i++) //更新dis{dis[i] = min(dis[i], dis[v] + cost[v][i]);}}}int main(){int a, b, c;while(scanf("%d%d", &T, &N) != EOF){for(int j = 0; j <= N; j++) //初始化cost数组{for(int k = 0; k <= N; k++){if(j != k)cost[j][k] = INF;elsecost[j][k] = 0;}}for(int i = 0; i < T; i++){scanf("%d%d%d", &a, &b, &c);if(cost[a][b] > c) //取最小长度cost[a][b] = cost[b][a] = c;}Dijkstra();printf("%d\n", dis[1]);}return 0;}
0 0
- 北大ACM2387——Til the Cows Come Home
- POJ2387 Til the Cows Come Home——Heap+dijkstra
- A - Til the Cows Come Home——
- poj2387 Til the Cows Come Home—Dijkstra模板
- Til the Cows Come Home
- Til the Cows Come Home
- Til the Cows Come Home
- Til the Cows Come Home
- Til the Cows Come Home
- Til the Cows Come Home
- Til the Cows Come Home
- Til the Cows Come Home
- Til the Cows Come Home
- Til the Cows Come Home
- Til the Cows Come Home
- Til the Cows Come Home
- Til the Cows Come Home
- POJ 2387 Til the Cows Come Home
- 多处最优服务次序问题
- javascript 生成笛卡尔积
- JVM自定义参数
- linux expect 实例
- 企业IT项目开发之七宗罪(中篇)
- 北大ACM2387——Til the Cows Come Home
- java中的内部类总结
- 企业IT项目开发之七宗罪(下篇)
- 1010. 一元多项式求导 (25)
- Java对象的强、软、弱和虚引用原理+结合ReferenceQueue对象构造Java对象的高速缓存器
- 马哥linux运维公开课第二季—《自动化运维平台的设计理念》
- 数组作为函数参数的传递方法
- swift语言-函数part1
- Python字符串学习与使用