试题D路径
分析:题目要求算1-2021的最短路径,结点之间的边权是给定的,所以可以通过Dijkstra算法来求最短路径
先解决(i,j)之间的权值,i、j之间的最小公倍数记为d,d可以通过求i、j之间的最大公约数gcd(i,j)让i*j/gcd(i,j)求得
1、构建邻接矩阵
int n = 2021;
for(int i = 1; i <= n; i++){
for (int j = i+1; j < i+22; j++){//i和j之间的绝对值<=21时,i和j之间才有边
G[i][j].
原创
2022-03-31 19:34:15 ·
167 阅读 ·
0 评论