题目

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

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

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

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

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

提示:建议使用计算机编程解决问题

思路

题目意思已经很明确了,使用最短路径来解决问题,最短路径有专门的算法,我在这里使用的Dijkstra算法。这道题不只考查最短路径,还涉及到 最小公倍数的查找,在这里使用递归对其进行判断。对数组初始化时,一定要选择一个较大的数,不然比较那里就会出现问题。因为1到2021的最短路径是一个很大的数,注意,注意,注意!

代码

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define inf 1000000000
#define N 3000
#define n 2021
int a[N][N];
int gkd(int b,int z)
{if(z==0)return b;elsereturn gkd(z,b%z);
}
void DJ()(Dijkstra算法过程)
{int dist[N],visit[N],i,j,k,min,c;for(i=1;i<=n;i++){dist[i]=a[1][i];}for(i=1;i<=n;i++){visit[i]=0;}for(i=1;i<=n;i++){min=inf;for(j=1;j<=n;j++){if(visit[j]==0&&dist[j]<min){min=dist[j];k=j;}}visit[k]=1;for(c=1;c<=n;c++){if(a[k][c]<inf){if(dist[c]>dist[k]+a[k][c]){dist[c]=dist[k]+a[k][c];}}}}printf("%d",dist[n]);
}
int main()
{int i,j;for(i=1;i<=n;i++){for(j=1;j<=n;j++){if(i==j)a[i][j]=0;elsea[i][j]=inf;}}for(i=1;i<=n;i++){for(j=1;j<=n;j++){if(i!=j){if(abs(i-j)<=21){a[i][j]=i*j/gkd(i,j);(求最小公倍数)a[j][i]=i*j/gkd(i,j);}}}}DJ();return 0;
}

蓝桥杯真题(路径)C语言相关推荐

  1. 蓝桥杯真题 路径之谜【第七届】【决赛】【C组】(C语言实现)

    小明冒充X星球的骑士,进入了一个奇怪的城堡. 城堡里边什么都没有,只有方形石头铺成的地面. 假设城堡地面是 n x n 个方格.如下图所示: 按习俗,骑士要从西北角走到东南角. 可以横向或纵向移动,但 ...

  2. 蓝桥杯真题系列:C语言A组奇妙的数字

    小明发现了一个奇妙的数字.它的平方和立方正好把0~9的10个数字每个用且只用了一次. 你能猜出这个数字是多少吗? 请填写该数字,不要填写任何多余的内容. 这个题题意比较简单,解决办法也是非常简单,暴力 ...

  3. 2021蓝桥杯真题扫雷 C语言/C++

    题目描述 在一个 n 行 m 列的方格图上有一些位置有地雷,另外一些位置为空. 请为每个空位置标一个整数,表示周围八个相邻的方格中有多少个地雷. 输入描述 输入的第一行包含两个整数 n,m. 第 22 ...

  4. 第十届蓝桥杯c语言试题,第十届蓝桥杯真题编程题1-7解析(高级组).pdf

    scratch 少儿编程第十届蓝桥杯真题 7 大家好 ~今天我们来讲解 scratch 蓝桥杯第十届编程大题的第七道题. 同样,这道题也是非常有难度的一道题.一起来看一下吧 解析: 女孩的程序 1.在 ...

  5. c语言六角填数蓝桥杯答案,六角填数(全排列)蓝桥杯真题

    六角填数(全排列)蓝桥杯真题 六角填数(全排列)蓝桥杯真题 如图所示六角形中填入1-12的数字,使每条直线上的数字和相等,图中已经填好了3个数字,请你计算*号数字是多少 蓝桥杯老套路,经常这样考全排列 ...

  6. 蓝桥杯真题2017-2021

    刷完近几年真题,感觉理解完之后,拿奖问题不大,本人这次获得2022年蓝桥杯javaB组省一,以下是历年javaB组省赛题目. 文章目录 2017年真题 一.购物单 二.纸牌三角形 三.承压计算 四.魔 ...

  7. python解答蓝桥杯真题2 猜年龄 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在19351936年应邀来中国清华大学讲学。。。

    python解答蓝桥杯真题2 猜年龄 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学.他曾在1935~1936年应邀来中国清华大学讲学... 问题描述 全排列模板: 美国数学家维纳(N. ...

  8. 第五届蓝桥杯真题解析【JavaC组】

    第五届蓝桥杯真题解析[JavaC组] 业精于勤,荒于嬉:行成于思,毁于随.--韩愈 文章目录 ***第五届蓝桥杯真题解析[JavaC组]*** 前言 A:猜年龄 B:等额本金 C:猜字母 D:大衍数列 ...

  9. 蓝桥杯python省赛冲刺篇2——常用算法的详细解析及对应蓝桥杯真题:打表模拟法、递推递归法、枚举法、贪心算法、差分与前缀和

    注意:加了题目链接 目录 注意:加了题目链接 一.打表模拟法 介绍 1. 算式问题 题目描述 解析与代码演示 2. 求值 题目描述 解析与代码演示 3. 既约分数 题目描述 解析与代码演示 4. 天干 ...

  10. 【蓝桥杯真题】16天冲刺 Python

    距离比赛很快了,希望和我一起准备的PY党能更加熟练的掌握Python! 1.距离和(模拟赛填空题) 问题描述: 两个字母之间的距离定义为它们在字母表中位置的距离.例如 A和 C 的距离为 2,L 和  ...

最新文章

  1. z-index 用法
  2. Android-02:使用SharedPreferences存储简单数据
  3. 解决UbuntuE: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
  4. MySQL 条件查询 limit、in、between and、like等等
  5. Python爬虫自学之第(零)篇——爬虫思路和request模块使用
  6. 硬盘损坏如何恢oracle,硬盘物理损坏,如何恢复数据库?
  7. python遍历链表_四种常见链表的实现及时间复杂度分析(Python3版)
  8. win8系统装c语言编程软件哪个好,win8系统安装c语言方法
  9. 帆软高级函数应用之数组函数
  10. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第5节 线程池_1_线程池的概念和原理...
  11. linux USB无线网卡(RTL8188EUS)驱动
  12. 学习Java过程中创建动态数组的两种方法比较
  13. Springboot项目引入Bootstrap后,图标不能正常显示,报:Failed to decode downloaded font
  14. LQ0270 手机尾数【水题】
  15. python 可视化分析平台_python 数据分析数据可视化工具matplotlib
  16. LNMP旧版本一键安装
  17. MyCat简单安装及应用(linux
  18. 张江GSK 激活黑莓8820
  19. 迈德威视相机C#调用例程
  20. Django 高并发负载均衡

热门文章

  1. 学习ARM开发01-09
  2. python改变图像颜色_通过python改变图片特定区域的颜色详解
  3. 电视信号中的一些基本概念 (转自驱动之家)
  4. 1007. Maximum Subsequence Sum (25)-PAT甲级真题(最大连续子序列和、动态规划dp)
  5. 注意力机制详解(Attention详解)
  6. 【Arduino实验12 1602 LCD显示】
  7. Qt之TableView使用
  8. Macbook电池优化的七种建议
  9. 简明解释算法中的大O符号
  10. 根据微信返回的头像url选择所需尺寸图片