当前位置:网站首页>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;
}边栏推荐
- 模板_求排列逆序对_基于归并排序
- 在线怎么生成富文本
- 550 permission denied occurs when FTP uploads files, which is not a user permission problem
- FTP server, ssh server (super brief)
- [untitled] a query SQL execution process in the database
- SPI communication protocol
- Minecraft 1.16.5 生化8 模组 2.0版本 故事书+更多枪械
- Using SA token to solve websocket handshake authentication
- PHP campus movie website system for computer graduation design
- HttpRunnerManager安装(三)-Linux下配置myql数据库&初始化数据
猜你喜欢

Blue Bridge Cup embedded_ STM32 learning_ Key_ Explain in detail

数据工程系列精讲(第四讲): Data-centric AI 之样本工程

【MySQL 15】Could not increase number of max_ open_ files to more than 10000 (request: 65535)

论文笔记: 图神经网络 GAT

Building the prototype of library functions -- refer to the manual of wildfire

Social networking website for college students based on computer graduation design PHP

RDD conversion operator of spark

Computer graduation design PHP college classroom application management system
![[robot library] awesome robots Libraries](/img/72/d3e46a820796a48b458cd2d0a18f8f.png)
[robot library] awesome robots Libraries

Easy to use js script
随机推荐
Virtual machine network, networking settings, interconnection with host computer, network configuration
Apicloud openframe realizes the transfer and return of parameters to the previous page - basic improvement
Initial understanding of pointer variables
Adapter-a technology of adaptive pre training continuous learning
一题多解,ASP.NET Core应用启动初始化的N种方案[上篇]
Use Scrollview and tabhost to realize vertical scrollbars and tabs
RDD creation method of spark
Computer graduation design PHP enterprise staff training management system
Derivation of Biot Savart law in College Physics
How to use C to copy files on UNIX- How can I copy a file on Unix using C?
Sword finger offer 29 Print matrix clockwise
HDU_ p1237_ Simple calculator_ stack
SQL statement
[coppeliasim] 6-DOF path planning
729. My schedule I / offer II 106 Bipartite graph
Number conclusion LC skimming review - 1
[robot library] awesome robots Libraries
[robot hand eye calibration] eye in hand
Computer graduation design PHP part-time recruitment management system for College Students
Concept of storage engine