题目:从节点N到节点1的求最短路径。

分析:这道题陷阱比较多,首先是输入的数据,第一个是表示路径条数,第二个是表示节点数量,在 这里WA了四次。再有就是多重边,要取最小值。最后就是路径的长度的最大值不是100,而是100001。用Dijkstra求最短路径,感觉 Dijkstra和Prim很像,都是从结点中找到路径最小的一条,然后再做某种更新。Dijkstra是看看源节点通过当前节点能否缩短从源头到其他节 点的路径,而Prim则是通过加入当前节点到生成树,然后更新生成树中的路径数量,再从中找到最小路径。

package Map;

import java.util.Scanner;

/**
* Dijkstra最短路径
*/
public class Poj_2387_Dijkstra { static int n, m;
static int MAXV = 2010;
static int MAX = 100001; static int map[][] = new int[MAXV][MAXV];
static boolean vis[] = new boolean[MAXV]; public static int dijksrta(int V) { vis[V] = true;
for (int i = 1; i <= n; i++) {
int min = MAX;
int k = 0;
for (int j = 1; j <= n; j++) {
if (!vis[j] && map[V][j] < min) {
min = map[V][j];
k = j;
}
}
vis[k] = true;
for (int j = 1; j <= n; j++) {
if (!vis[j] && min + map[k][j] < map[V][j]) {
map[V][j] = min + map[k][j];
}
}
}
return map[V][1];
} public static void main(String args[]) {
Scanner sc = new Scanner(System.in); m = sc.nextInt();
n = sc.nextInt(); for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
map[i][j] = MAX;
}
map[i][i] = 0;
}
for (int i = 1; i <= m; i++) {
int s = sc.nextInt();
int e = sc.nextInt();
int val = sc.nextInt();
if(map[s][e] > val){ //重边问题,去最小的
map[s][e] = val;
map[e][s] = val;
}
}
System.out.println(dijksrta(n));
}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

Poj 2387 Til the Cows Come Home(Dijkstra 最短路径)的更多相关文章

  1. POJ 2387 Til the Cows Come Home Dijkstra求最短路径

    Til the Cows Come Home Bessie is out in the field and wants to get back to the barn to get as much s ...

  2. POJ 2387 Til the Cows Come Home (最短路径 模版题 三种解法)

    原题链接:Til the Cows Come Home 题目大意:有  个点,给出从  点到  点的距离并且  和  是互相可以抵达的,问从  到  的最短距离. 题目分析:这是一道典型的最短路径模版 ...

  3. poj 2387 Til the Cows Come Home(dijkstra算法)

    题目链接:http://poj.org/problem?id=2387 题目大意:起点一定是1,终点给出,然后求出1到所给点的最短路径. 注意的是先输入边,在输入的顶点数,不要弄反哦~~~ #incl ...

  4. POJ 2387 Til the Cows Come Home (Dijkstra)

    传送门:http://poj.org/problem?id=2387 题目大意: 给定无向图,要求输出从点n到点1的最短路径. 注意有重边,要取最小的. 水题..对于无向图,从1到n和n到1是一样的. ...

  5. POJ 2387 Til the Cows Come Home (图论,最短路径)

    POJ 2387 Til the Cows Come Home (图论,最短路径) Description Bessie is out in the field and wants to get ba ...

  6. POJ.2387 Til the Cows Come Home (SPFA)

    POJ.2387 Til the Cows Come Home (SPFA) 题意分析 首先给出T和N,T代表边的数量,N代表图中点的数量 图中边是双向边,并不清楚是否有重边,我按有重边写的. 直接跑 ...

  7. POJ 2387 Til the Cows Come Home

    题目链接:http://poj.org/problem?id=2387 Til the Cows Come Home Time Limit: 1000MS   Memory Limit: 65536K ...

  8. POJ 2387 Til the Cows Come Home(最短路 Dijkstra/spfa)

    传送门 Til the Cows Come Home Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 46727   Acce ...

  9. 怒学三算法 POJ 2387 Til the Cows Come Home (Bellman_Ford || Dijkstra || SPFA)

    Til the Cows Come Home Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 33015   Accepted ...

随机推荐

  1. Django组件 用户认证,form

    auth模块 在进行用户登陆验证的时候,如果是自己写代码,就必须要先查询数据库,看用户输入的用户名是否存在于数据库中: 如果用户存在于数据库中,然后再验证用户输入的密码,这样一来就要自己编写大量的代码 ...

  2. Windows下MarialDB使用

    命令行控制启动和关闭:mysqld --console     #这样启动ctrl+c即为关闭 启动:双击mysqld.exe即可   #此为后台启动 关闭:mysqladmin -uroot -pr ...

  3. Java -- JDBC 批处理

    两种批处理方式: 采用Statement.addBatch(sql)方式实现批处理: •优点:可以向数据库发送多条不同的SQL语句. •缺点: •SQL语句没有预编译. •当向数据库发送多条语句相同, ...

  4. 不小心把服务器上的/usr/lib下的所有文件删除,恢复办法

    手贱,使用root用户,rm -rf 多了一个"*"……导致了万分惊恐的悲剧,/usr/lib下的所有文件被删除…… 修复办法: linux系统是基于文件的,所以只要能拷贝到和原来 ...

  5. UOJ66 新年的巧克力棒

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...

  6. 根据图片名字在drawable中得到图片

    int imageId = context.getResources().getIdentifier("图片的名字","drawable", "包名& ...

  7. TemplatedParent 与 TemplateBinding

    http://blog.csdn.net/idebian/article/details/8761388

  8. python中的excel操作

    一. Excel在python中的应用 存测试数据 有的时候大批量的数据,我们需要存到数据库中,在测试的时候才能用到.测试的时候就从数据库中读取出来.这点是非常重要的! 存测试结果 二. Excel中 ...

  9. ROC曲线是通过样本点分类概率画出的 例如某一个sample预测为1概率为0.6 预测为0概率0.4这样画出来,此外如果曲线不是特别平滑的话,那么很可能存在过拟合的情况

    ROC和AUC介绍以及如何计算AUC from:http://alexkong.net/2013/06/introduction-to-auc-and-roc/ ROC(Receiver Operat ...

  10. mysql备份shell脚步

    #!/bin/bash  #Shell Command For Backup MySQL Database Everyday Automatically By Crontab     USER=roo ...