51Nod - 1459 迷宫游戏 dijkstra拓展
发布日期:2021-06-30 19:50:09 浏览次数:2 分类:技术文章

本文共 1141 字,大约阅读时间需要 3 分钟。

题目:

解题思路:

这道题可以用最短路径来做,我用的是dijkstra 算法,这个算法可以参考   这篇博客来简单学习一下。题中需要注意的就是如何求那个分数,和注意题目中给的是无向图。细节请看代码中的注释。

代码:

/**   51Nod 1459 迷宫游戏 dijkstra拓展*/import java.io.*;import java.util.Scanner;public class t1 {    static int[] grade;    static int[][] graph;    static final int INFINITY = 1<<16;    static int n;    static int m;    static int start;    static int end ;    static int []dist;    static int []g_dist;    static boolean []visit;    public void dijkstra() {        //将start点加入两个dist数组        dist[start] = 0;        g_dist[start] = grade[start];        visit[start] = true;        //dijkstra算法        for(int j = 0; j
g_dist[i]) { //如果花费的时间相同,取分数最大 g_dist[i] = g_dist[u] + grade[i]; } } } } public void createGraph() { Scanner cin = new Scanner(System.in); //基本数据 n = cin.nextInt(); m = cin.nextInt(); start = cin.nextInt(); end = cin.nextInt(); //分数 grade = new int[n]; for(int i = 0; i

测试数据:

8 10 0 12 1 5 1 1 1 1 30 4 10 3 20 7 14 5 13 2 17 3 13 6 12 1 11 6 12 5 1
4 12

转载地址:https://lipenglin.blog.csdn.net/article/details/51774787 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:linux - 对于双系统的用户来说,在磁盘分区变化之后需要进入系统并更新磁盘
下一篇:Java EE — Servlet 01 Servlet 开发流程

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月17日 13时49分33秒