当前位置:网站首页>2020.02.11
2020.02.11
2022-07-06 02:24:00 【weisir1】
I learned it today djs Algorithm , Let's summarize .
This algorithm is to find the shortest path of a single source . Now I'll give you the template and ideas , Be clear at a glance .
#include <iostream>
#include <algorithm>
#include <stack>
using namespace std;
const int N = 210;
const int INF = 0x3f3f3f3f; // infinity , Not adjacent is infinite
int G[N][N], dis[N]; // G Is the adjacency matrix ,dis Single source to i A weight
int p[N]; // Record the precursor
bool book[N]; // Determine whether it has been added to the set , The set represents the updated nodes
int n;
void dijkstra(int u, int n) // u It's the source , The shortest path from the source point to each vertex ,n It's a fixed number
{
for (int i = 1; i <= N; i++) // initialization
{
dis[i] = G[u][i];
book[i] = 0;
/*
if (dis[i] == INF) // If it is equal to INF, Express u Can't reach this vertex , The precursor is -1
p[i] = -1;
else
p[i] = u;
*/
}
dis[u] = 0; // u To u A weight of 0
book[u] = 1; // Express u Updated
for (int i = 1; i < n; i++) // Find the smallest and update dis
{
// printf("=============\n");
int min = INF, t = u;
for (int j = 1; j <= n; j++)
if (!book[j] && dis[j] < min) // If j Not updated and adjacent
{
min = dis[j];
t = j;
}
if (t == u) // Optimize
return;
book[t] = 1;
// printf("t:%d\n", t);
for (int j = 1; j <= n; j++)
{
if (!book[j] && dis[j] > dis[t] + G[t][j]) // If a vertex is at the same time and u and t Adjacency , Update dis[j] Value
{
// printf("dis[j]:%d\n", dis[j]);
dis[j] = dis[t] + G[t][j];
// p[j] = t; // change j The precursor of t
// printf("dis[j]:%d\n", dis[j]);
}
}
}
}
int main()
{
for (int i = 1; i <= N; i++)
for (int j = 1; j <= N; j++)
G[i][j] = INF;
cin >> n;
for (int i = 1; i <= n - 1; i++)
for (int j = i + 1; j <= n; j++)
cin >> G[i][j];
dijkstra(1, n);
cout << dis[3] << endl;
}边栏推荐
- LeetCode 103. Binary tree zigzag level order transverse - Binary Tree Series Question 5
- 有沒有sqlcdc監控多張錶 再關聯後 sink到另外一張錶的案例啊?全部在 mysql中操作
- [community personas] exclusive interview with Ma Longwei: the wheel is not easy to use, so make it yourself!
- 零基础自学STM32-复习篇2——使用结构体封装GPIO寄存器
- Sword finger offer 29 Print matrix clockwise
- 零基础自学STM32-野火——GPIO复习篇——使用绝对地址操作GPIO
- Using SA token to solve websocket handshake authentication
- Using SA token to solve websocket handshake authentication
- SPI communication protocol
- Concept of storage engine
猜你喜欢

0211 embedded C language learning

Computer graduation design PHP campus restaurant online ordering system

Use the list component to realize the drop-down list and address list

LeetCode 103. Binary tree zigzag level order transverse - Binary Tree Series Question 5

It's wrong to install PHP zbarcode extension. I don't know if any God can help me solve it. 7.3 for PHP environment

Use image components to slide through photo albums and mobile phone photo album pages

Using SA token to solve websocket handshake authentication

Shell脚本更新存储过程到数据库

Sword finger offer 29 Print matrix clockwise

【MySQL 15】Could not increase number of max_open_files to more than 10000 (request: 65535)
随机推荐
How to improve the level of pinduoduo store? Dianyingtong came to tell you
好用的 JS 脚本
从顶会论文看2022年推荐系统序列建模的趋势
RDD conversion operator of spark
Virtual machine network, networking settings, interconnection with host computer, network configuration
【机器人手眼标定】eye in hand
【机器人库】 awesome-robotics-libraries
Global and Chinese markets for single beam side scan sonar 2022-2028: Research Report on technology, participants, trends, market size and share
在线怎么生成富文本
Spark accumulator
有沒有sqlcdc監控多張錶 再關聯後 sink到另外一張錶的案例啊?全部在 mysql中操作
After changing the GCC version, make[1] appears in the compilation: cc: command not found
Genius storage uses documents, a browser caching tool
Audio and video engineer YUV and RGB detailed explanation
[untitled] a query SQL execution process in the database
ftp上传文件时出现 550 Permission denied,不是用户权限问题
A basic lintcode MySQL database problem
[postgraduate entrance examination English] prepare for 2023, learn list5 words
Executing two identical SQL statements in the same sqlsession will result in different total numbers
【clickhouse】ClickHouse Practice in EOI