首页 > 编程语言 >java:路径———(最短路径)

java:路径———(最短路径)

时间:2023-01-10 17:23:32浏览次数:37  
标签:结点 java 21 int 路径 最短 2021

题目描述

小蓝学习了最短路径之后特别高兴,他定义了一个特别的图,希望找到图 中的最短路径。

小蓝的图由 2021 个结点组成,依次编号 1 至 2021。

  对于两个不同的结点 a, b,如果 a 和 b 的差的绝对值大于 21,则两个结点 之间没有边相连;如果 a 和 b 的差的绝对值小于等于 21,则两个点之间有一条 长度为 a 和 b 的最小公倍数的无向边相连。

例如:结点 1 和结点 23 之间没有边相连;结点 3 和结点 24 之间有一条无 向边,长度为 24;结点 15 和结点 25 之间有一条无向边,长度为 75。

请计算,结点 1 和结点 2021 之间的最短路径长度是多少。

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
    public static void main(String[] args) {
        //1~2021 不同节点之间路径值不同 a b差值小于21
        int[] dp=new int[2022];
        dp[1]=0;
        for(int i=2;i<=2021;i++){
          dp[i]=Integer.MAX_VALUE; //赋值 int类型最大取值数:2147483647
        }
        for(int i=1;i<=2020;i++){
          for(int j=i+1;j<=2021&&(j-i<=21);j++){ //结点a b的绝对值小于21
            dp[j]=Math.min(dp[j],dp[i]+arr(i,j));//**求取最小路径**
          }
        }
      System.out.println(dp[2021]);
    }
    public static int gcd(int number,int num){//求最大公因子----辗转相除法
        return num!=0?gcd(num,number%num):number;
    }
/*    public static int gcd(int number,int num){
      if(num==0) return number;
      return gcd(num,number%num);
    }*/
    public static int arr(int a,int b){ //求最小公倍数
      return a*b/gcd(a,b);
    }
}

 

标签:结点,java,21,int,路径,最短,2021
From: https://www.cnblogs.com/mcpf/p/17040846.html

相关文章

  • Java并发容器之DelayQueue源码分析
    一、简介DelayQueue是java并发包下的延时阻塞队列,常用于实现定时任务。二、继承体系从继承体系可以看到,DelayQueue实现了BlockingQueue,所以它是一个阻塞队列。另外,De......
  • Java学习方法
    如何更好的学习方法多写代码,多写笔记,多写文章多练交流,多练思维,多练技能多分享,多提问,多思考学习准备:博客为什么要写博客?需要思考和总结提升文笔组织能力提升学习......
  • java反序列化从0到cc1
    前言java安全已成为安全从业者必不可少的技能,而反序列化又是Java安全非常重要的一环。又是本文将从0基础开始,带着大家层层递进,从java基础到URLDNS链到最终理解反序列化cc1......
  • Java基础学习06
    学到一个新的之前没遇到的方法的参数表示:可变参数(2023-01-10)当多个函数的功能相同,参数的类型也相同,但是参数的个数不同的时候就可以用到可变参数。表示方法:int...nums;......
  • Java网络编程
    Java网络编程P617-627网络通信要素IP和端口号网络通信协议InetAddress类importjava.net.InetAddress;importjava.net.UnknownHostException;/***一、网......
  • JavaScript中的闭包
    JavaScript中的闭包是一种特殊的函数,它可以访问其定义时所在的作用域中的变量,即使在这个作用域已经不存在的情况下。闭包的一个常见用途是构建私有变量。当你使用闭包封装......
  • 业务数据分析(三十一):产品分析(十)产品不同阶段的分析以及产品分析全流程(八)效果分析之常见
    业数据分析(三十一):产品分析(十)产品不同阶段的分析以及产品分析全流程(八)效果分析之常见效果跟踪分析法(二)页面跳转路径分析               ......
  • JavaScript 浅拷贝和深拷贝
    JavaScript中的拷贝分为两种:浅拷贝和深拷贝。浅拷贝是指在拷贝过程中,只拷贝一个对象中的指针,而不拷贝实际的数据。所以,浅拷贝中修改新对象中的数据时,原对象中的数据也会......
  • C++ 图进阶系列之纵横对比 Bellman-Ford 和 Dijkstra 最短路径求解算法
    1.前言因无向、无加权图的任意顶点之间的最短路径由顶点之间的边数决定,可以直接使用原始定义的广度优先搜索算法查找。但是,无论是有向、还是无向,只要是加权图,最短路径长......
  • app直播源码,java自定义注解
    app直播源码,java自定义注解word注解代码@Target({ElementType.METHOD,ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Inherited@Documentedpublic@interface......