2021第十二届蓝桥杯省赛B组C/C++

  • 试题 E: 路径
    • 代码

试题 E: 路径

Ans=10266837
我哭了
最短路径的题考前刷了多少道,最后还是在考场翻车 还是太菜啊啊。。

首先是边权图的初始化,显然用邻接表保存权值要比邻接矩阵省点空间。
其次算权值需要算最小公倍数LCM,我考试直接用的加穷举的方法算LCM,太幼稚了,在N,M增大的时候,他们的LCM量级会显著增大(两被求数仅在万级时,其LCM就要达到亿级了),加穷举法的计算耗时会增加非常快,几乎没法儿用。
我考试的时候用加穷举,跑一遍几分钟(。。。我还抱怨赛题的问题 淦 太丢人了) 结果答案还跑不出来,气炸哦


int gcd(int n,int m){return m==0?n:gcd(m,n%m);}    //辗转相除得GCDint lcm(int n,int m){return n/gcd(n,m)*m;}         //先除后乘 防止溢出

两个for循环初始化邻接表


for(int i=0;i<2021;i++){for(int j=i+1;j<=i+21&&j<2021;j++){

然后就是写Djikstra函数…
整个程序里的索引啥的把我折磨坏了…

代码


#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 2000000000;
int dis[2022];
int vi[2022];
typedef struct node{int index,co;node() :index(), co(){}node(int a,int b):index(a),co(b){}
}ta;
vector<ta> cost[2022];
int gcd(int n,int m){return m==0?n:gcd(m,n%m);}
int lcm(int n,int m){return n/gcd(n,m)*m;}void djikstra(){dis[0]=0;for(int i=0;i<2021;i++){int u=-1,cmin=maxn;for(int j=0;j<2021;j++){if(vi[j]!=1&&dis[j]<cmin){u=j;cmin=dis[j];}}if(u==-1) return;vi[u]=1;int tar;for(int j=0;j<cost[u].size();j++){tar=cost[u][j].index;if(vi[tar]!=1&&(cost[u][j].co+cmin<dis[tar])){dis[tar]=cost[u][j].co+cmin;}}}
}
int main() {fill(dis,dis+2022,maxn);fill(vi,vi+2022,0);for(int i=0;i<2021;i++){for(int j=i+1;j<=i+21&&j<2021;j++){ta t;t=node(j,lcm(i+1,j+1));cost[i].push_back(t);}}djikstra();cout<<dis[2020];return 0;
}

2021第十二届蓝桥杯省赛B组C/C++ 试题 E: 路径相关推荐

  1. 2021年软件类第十二届蓝桥杯 省赛 python组 F-J题解

    2021年软件类第十二届蓝桥杯 省赛 python组 F-J题解 文章目录 2021年软件类第十二届蓝桥杯 省赛 python组 F-J题解 试题 F:时间显示 题目描述 输入描述 输出描述 输入输出 ...

  2. 2021年第十二届蓝桥杯省赛B组(C/C++)第二场题解

    文章目录 2021年第十二届蓝桥杯省赛B组(C/C++)第二场题解 1.求余 2.双阶乘 3.格点 4.整数分解 5.城邦 6.特殊年份 7.小平方 8.完全平方数 9.负载均衡 10.国际象棋 20 ...

  3. 2021第十二届蓝桥杯省赛JAVA B组 题目+答案(复现赛)

    2021第十二届蓝桥杯省赛JAVA B组 题目+答案(复现赛) A:ASC B:卡片 C:直线 D:货物摆放 E:路径 Floyed Dijkstra F:时间显示 G:最少砝码 H:杨辉三角形 I: ...

  4. 十二届蓝桥杯省赛B组C++解析(填空题部分)

    十二届蓝桥杯省赛B组C++解析(填空题部分) 目录 十二届蓝桥杯省赛B组C++解析(填空题部分) A:空间 B:卡片 C:直线 D:货物摆放 E:路径 A:空间 该题是一道计算机基础原理题,这里需要了 ...

  5. 2021 第十二届 蓝桥杯 国赛决赛 Java B组 真题 详细解析

    文章目录 2021 第十二届 Java B组 国赛 真题答案 详细解析 试题A: 整数范围 答案:255 分析: Code: 试题B: 纯质数 答案:1903 分析: Code: 试题C: 完全日期 ...

  6. 2021年第十二届蓝桥杯省赛B组(C/C++)个人题解

    Problem A 空间 计组基础题:256MB=256 * 2^20 * 8 位 所以存放32位元素可以存放 256 * 1024 * 1024 * 8 / 32 ans: 67108864 送分题 ...

  7. 2021第十二届蓝桥杯国赛总结-java大学c组

    比赛结果 结果挺意外的,比赛中失误较多,送分题暴毙(审题失误),没把自己气死,结果算不错,但也挺可惜. 解答过程 1. 整数范围 答案:255 没想太多直接计算器算的,后来听符号位,但似乎不用考虑. ...

  8. 2021第十二届蓝桥杯省赛一等奖Java B组总结

    大家觉得写还可以,可以点赞.收藏.关注一下吧! 也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn 省赛成绩出来了,省赛一等奖 国赛地点出来 ...

  9. 2021年第十二届蓝桥杯省赛B组C/C++部分填空题解

    题A: 看到题意很容易算出答案就是256乘1024乘1024乘8除以32 答案:67108864 题B: 直接模拟就好了,用一个数组来记录每个数字的次数,暴力到数组该数字不够时,就不能表示完这个数字. ...

最新文章

  1. python编写自动化脚本 与shell_脚本安装Discuz论坛(shell + Python 实现自动化安装)...
  2. linux 解压缩常用命令
  3. CentOS6.8 安装node.js npm
  4. android 访问sqlite,android中访问已有的sqlite数据库
  5. 串口服务器应用领域及应用方案详解
  6. 外媒:ATT宣布加入SD-WAN阵营
  7. OpenShift 4 - Fedora CoreOS (4) - 用 Ignition 定制 CoreOS 的网络/存储等配置
  8. wamp3.1.0下载地址
  9. [剑指offer] 46. 孩子们的游戏(圆圈中最后剩下的数)
  10. HTML学习笔记——DOCTYPE和DTD,标准模式和兼容模式
  11. 【快学springboot】使用springboot发送邮件
  12. 电功图matlab,基于Matlab的电力系统输电线路仿真
  13. QT 对话框不在任务栏显示
  14. APP上架应用市场需要准备什么材料
  15. 华东师范大学计算机考研有多难,「华东师范大学考研详解」报录比70:1的专业,热度高到“爆炸”!...
  16. 详解opencv的HOG描述子维度数目的计算原理
  17. openerp/odoo 权限解析
  18. Hadoop配置lzo
  19. SQL server一丢丢杂乱的整理
  20. 宝,别踩我蜜罐了,可好?

热门文章

  1. 良好棉花是如何认证的?标准内容是什么?
  2. 11.20聚类色彩分析
  3. 风口上的科技服务——闯客网打造2018智能硬件服务共赢格局
  4. 微信小程序代码托管到GitHub
  5. 友盟分享插件 for Flutter
  6. [UE4] UI部分
  7. 使用meson编译gstreamer
  8. 网站url该如何优化更好
  9. FlowMap:流动效果实现
  10. 测试接口生成文档的工具 APIFOX