题目描述:

小蓝学习了最短路径之后特别高兴,他定义了一个特别的图,希望找到图中的最短路径。
小蓝的图由2021 个结点组成,依次编号1 至2021。
对于两个不同的结点a, b,如果a 和b 的差的绝对值大于21,则两个结点之间没有边相连;
如果a 和b 的差的绝对值小于等于21,则两个点之间有一条长度为a 和b 的最小公倍数的无向边相连。
例如:结点1 和结点23 之间没有边相连;结点3 和结点24 之间有一条无向边,长度为24;
结点15 和结点25 之间有一条无向边,长度为75。
请计算,结点1 和结点2021 之间的最短路径长度是多少。
提示:建议使用计算机编程解决问题。

代码:

#include <bits/stdc++.h>
using namespace std;
const int INF=0x3f3f3f3f;
int a[3000][3000];
bool vis[3000];
int dist[3000];
void dijkastra(){
memset(dist,0x3f,sizeof dist);
dist[1]=0;
for(int i=1;i<=2021;i++){
int t=-1;
for(int j=1;j<=2021;j++){
if(!vis[j]&&(t==-1||dist[j]<dist[t]))t=j;
}
vis[t]=true;
for(int j=1;j<=2021;j++){
if(!vis[j]){
dist[j]=min(dist[j],dist[t]+a[t][j]);
}
}
} }
int main(){
memset(a,0x3f,sizeof a);
for(int i=1;i<=2021;i++){
for(int j=1;j<=2021;j++){
if(abs(j-i)>21)a[i][j]=a[j][i]=INF;
else{
int t=__gcd(i,j);
a[i][j]=a[j][i]=i/t*j;
}
}
}
dijkastra();
cout<<dist[2021]<<endl;
return 0;
}

代码测试链接:P1553 - [蓝桥杯2021初赛] 路径 - New Online Judge

2021年蓝桥杯C/C++大学B组省赛真题(路径)的更多相关文章

  1. 2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告

    2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告 勘误1:第6题第4个 if最后一个条件粗心写错了,答案应为1580. 条件应为abs(a[3]-a[7])!=1,宝宝心理苦啊.!感谢zzh ...

  2. 第十届蓝桥杯JavaB组省赛真题

    试题 A: 组队 本题总分:5 分 [问题描述] 作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员, 组成球队的首发阵容. 每位球员担任 1 号位至 5 号位时的评分如下表所示. ...

  3. 第十届蓝桥杯JavaC组省赛真题

    试题 A: 求和 本题总分:5 分 [问题描述] 小明对数位中含有 2.0.1.9 的数字很感兴趣,在 1 到 40 中这样的数包 括 1.2.9.10 至 32.39 和 40,共 28 个,他们的 ...

  4. 第四届蓝桥杯JavaC组省赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.猜年龄 题目描述 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学.他曾在1935~1936年应邀来中国清华大学讲学. 一 ...

  5. 第八届蓝桥杯JavaB组省赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.购物单 题目描述 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦,但又不好推 ...

  6. 第九届蓝桥杯JavaC组省赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.哪天返回 题目描述 小明被不明势力劫持.后被扔到x星站再无问津.小明得知每天都有飞船飞往地球,但需要108元的船票,而他却身无分文. ...

  7. 第九届蓝桥杯JavaB组省赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.第几天 题目描述 2000年的1月1日,是那一年的第1天. 那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数 ...

  8. 第九届蓝桥杯JavaA组省赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.分数 题目描述 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + - 每项是前一项的一半,如果一共有20项, 求这个和是多 ...

  9. Java实现第十一届蓝桥杯JavaB组 省赛真题

    试题 A: 指数计算 本题总分:5 分 [问题描述] 7 月 1 日是建党日,从 1921 年到 2020 年, 已经带领中国人民 走过了 99 年. 请计算:7 ^ 2020 mod 1921,其中 ...

  10. 第四届蓝桥杯JavaA组省赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.世纪末的星期 题目描述 曾有邪教称1999年12月31日是世界末日.当然该谣言已经不攻自破. 还有人称今后的某个世纪末的12月31日, ...

随机推荐

  1. Linux & 标准C语言学习 <DAY8_2>

    一.函数 Function     一段具有某一项功能的代码集合,是C语言管理代码的最小单位     把代码封装成一个个函数,方便管理和调用函数     1.函数分类         标准库函数:   ...

  2. Flutter 2 渲染原理和如何实现视频渲染

    7 月 17 日下午,在前端专场巡回沙龙北京站中,声网Agora跨平台开发工程师卢旭辉带来了<Flutter2 渲染原理和如何实现视频渲染>的主题分享,本文是对演讲内容的整理. 本次分享主 ...

  3. java异常--自定义异常

    java异常--自定义异常 步骤: 创建自定义异常类. 在方法中通过throw关键字抛出异常对象. 处理异常try-catch 捕获并处理,否则在方法声明处通过throws关键字指明抛出给调用者的方法 ...

  4. vue对象深拷贝(避免对象赋值,改变一个对象的值,另一个对象也变化)

    对象直接赋值时,例如 let b = { name: 'name', age: 12} let a=b, a.age = 13 console.log(b.age)  // 13 由此可见,当改变 a ...

  5. 使用Electron-packager打包已有的web项目,发布客户端

    1.先拉electron代码 git clone https://github.com/electron/electron-quick-start 2.将web项目拷贝到electron-quick- ...

  6. scoket用法

    一.scoket基本介绍 1.scoket简介(以下是来自chatgpt回答) 1)Socket(套接字)是计算机网络中用于描述主机之间通信的一种机制.它定义了一种标准的接口, 使得应用程序可以利用网 ...

  7. [Linux]CentOS7搭建/配置:YUM仓库/源[本地源/Web源(Apache HTTP(D))/自建源仓库]

    若想搞懂整个配置过程和原理,就按照章节(1 / 2)一步一步地来. 若想直接一步到位,不想花过多时间,尽快配好,就直接看附件章节. 什么是yum源? Yum(全称为 Yellow dog Update ...

  8. vue自定义组件——split-pane

    pre { overflow-y: auto; max-height: 500px } github地址: https://github.com/lxmghct/my-vue-components 组 ...

  9. 【ACM组合数学 | 错排公式】写信

    题目链接:https://ac.nowcoder.com/acm/contest/54484/B 题意很简单,但是数据范围偏大. 错排公式 首先来推导一下错排公式: \[D(n) = n!\sum_{ ...

  10. 使用Vue.js实现文字跑马灯效果

    实现文字跑马灯效果,首先用到 substring()截取 和 setInterval计时器 clearInterval()清除计时器 效果如下: 实现代码如下: <!DOCTYPE html&g ...