首页 > 其他分享 >三十一 1375. 奶牛回家 (最短路)

三十一 1375. 奶牛回家 (最短路)

时间:2024-04-12 20:11:51浏览次数:29  
标签:charToInt charAt int 短路 三十一 private static str 1375

1375. 奶牛回家 (最短路)
image

import java.util.*;

public class Main {
    private static final int N = 60, INF = 0x3f3f3f3f;
    private static int n = 52, m;
    private static int[][] g = new int[N][N];
    private static int[] dist = new int[N];
    private static boolean[] st = new boolean[N];
    
    private static int charToInt(char a) {
        if (a <= 'Z') {
            return a - 'A' + 1;
        }
        return a - 'a' + 27;
    }
    
    private static void dijkstra() {
        Arrays.fill(dist, INF);
        dist[26] = 0;
        for (int i = 0; i < n - 1; i++) {
            int t = -1;
            for (int j = 1; j <= n; j++) {
                if (!st[j] && (t == -1 || dist[j] < dist[t])) {
                    t = j;
                }
            }
            st[t] = true;
            for (int j = 1; j <= n; j++) {
                dist[j] = Math.min(dist[j], dist[t] + g[t][j]);
            }
        }
    }
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        m = sc.nextInt();
        for (int i = 0; i < N; i++) {
            Arrays.fill(g[i], INF);
        }
        sc.nextLine();
        
        while (m-- > 0) {
            String str = sc.nextLine();
            char a = str.charAt(0);
            char b = str.charAt(2);
            int c = Integer.parseInt(String.valueOf(str.charAt(4)));
            int x = charToInt(a), y = charToInt(b);
            g[x][y] = g[y][x] = Math.min(g[x][y], c);
        }
        
        dijkstra();
        
        int res = 1;
        for (int i = 2; i <= 25; i++) {
            if (dist[i] < dist[res]) {
                res = i;
            }
        }
        
        System.out.println((char)(res - 1 + 'A') + " " + dist[res]);
    }
}

标签:charToInt,charAt,int,短路,三十一,private,static,str,1375
From: https://www.cnblogs.com/he0707/p/18132006/lanqiaobei31

相关文章

  • 算法学习笔记(13):同余最短路
    同余最短路是一种通过同余把状态分类,再通过建图跑最短路解决问题的算法。可以高效率解决一些特定的问题。非常的奇妙。算法鉴于学不懂,所以直接搬\(oi-wiki\)的题吧。呜呜呜。P3403跳楼机有一栋高为\(h\)的楼,初始在一楼,每次可以向上移动\(x\),\(y\),\(z\)层,也可......
  • 2-70. 核心功能评估周围节点得到最短路径
    修改AStar项目相关代码代码仓库:https://gitee.com/nbda1121440/farm-tutorial.git标签:20240412_1338......
  • 最短路算法
    最短路算法一、Dijkstra简介用于计算一个节点到其他节点的最短路径。它的主要特点是以起始点为中心向外层层扩展(广度优先遍历与贪心思想,如果权重为1的话就是BFS寻找最短路了),直到扩展到终点为止。按长度递增的次序产生最短路径适用于正权图,可以有环,不可以有负权边代码fr......
  • Hetao P1178 冒险者 题解 [ 绿 ][ 最短路 ][ 线性 dp ]
    原题题解本蒟蒻采用的和大部分人解法不同,是根据当前标记值的总和跑最短路的一种解法。思路30min,调代码2h的我太蒻了首先观察题面可以发现本题求的是最少操作数,由于要求最小且有变化的过程,所以可以使用dp求解,也可以使用最短路算法求解,本篇先介绍最短路的算法。其实......
  • 迷宫问题(C++): 最短路径计算(队列)&& 路径输出(栈)(附一个易错点~)
    迷宫问题大同小异,先直接上代码ba~:#include<bits/stdc++.h>//包含标准库头文件usingnamespacestd;//使用标准命名空间#definesize100//定义迷宫大小typedefstruct{//定义结构体STUintx,y;}STU;queue<STU>q;//定义队列qintn,bd[size][size]={0}......
  • 最短路径问题
    1.最短路径问题如果从图中某一顶点(称为源点)到达另一顶点(称为终点)的路径可能不止一条,如何找到一条路径,使得沿此路径各边上的权值总和(即从源点到终点的距离)达到最小,这条路径称为最短路径(shortestpath)。根据有向网或无向网中各边权值的取值情形及问题求解的需要,最短路径问题分为......
  • 两个字符串间的最短路径问题【华为OD机试】(JAVA&Python&C++&JS题解)
    一.题目-两个字符串间的最短路径问题给定两个字符串,分别为字符串A与字符串B。例如A字符串为ABCABBA,B字符串为CBABAC可以得到下图m*n的二维数组,定义原点为(0,0),终点为(m,n),水平与垂直的每一条边距离为1,映射成坐标系如下图。从原点(0,0)到(0,A)为水平边,距离为1,从(0,A)......
  • 【MATLAB源码-第171期】基于matlab的布谷鸟优化算法(COA)无人机三维路径规划,输出做短路
    操作环境:MATLAB2022a1、算法描述布谷鸟优化算法(CuckooOptimizationAlgorithm,COA)是一种启发式搜索算法,其设计灵感源自于布谷鸟的独特生活习性,尤其是它们的寄生繁殖行为。该算法通过模拟布谷鸟在自然界中的行为特点,为解决各种复杂的优化问题提供了一种新颖的方法。从算法......
  • 12V/20V安全供电新选择:PW1558过流限压保护芯片,带短路保护
    在电力电子领域,寻找一款能够提供全面保护且性能卓越的电源开关至关重要。PW1558正是这样一款产品,它凭借出色的性能和广泛的应用领域,赢得了业界的广泛认可。下面,我们将从描述、特点和应用三个方面,详细解读PW1558的魅力所在。首先,PW1558是一款24V5.5A电流限制开关,具备多重保护功能......
  • 第三课——最短路
    最短路最短路的算法是学了非常多次的一个算法了,但是这次学到的算是更加全面的一次。以前从数据结构中学到的两种最短路的算法,Dijkstra和Floyd。这两个算法在这篇文章中也会提到,最为最基础的两种最短路算法,后续的算法也都是在他们的基础上展开的。文章的最后,还提到了最短路的一个......