当前位置:网站首页>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;
}
边栏推荐
- Global and Chinese markets of nasal oxygen tubes 2022-2028: Research Report on technology, participants, trends, market size and share
- Template_ Find the reverse pair of permutations_ Sort based on merge
- HDU_p1237_简单计算器_stack
- Pangolin Library: subgraph
- Xshell 7 Student Edition
- The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
- 3D drawing ()
- 零基础自学STM32-野火——GPIO复习篇——使用绝对地址操作GPIO
- 剑指 Offer 30. 包含min函数的栈
- 729. My schedule I / offer II 106 Bipartite graph
猜你喜欢
Multi function event recorder of the 5th National Games of the Blue Bridge Cup
Use the list component to realize the drop-down list and address list
Easy to use js script
爬虫(9) - Scrapy框架(1) | Scrapy 异步网络爬虫框架
PHP campus financial management system for computer graduation design
Computer graduation design PHP enterprise staff training management system
MySQL lethal serial question 1 -- are you familiar with MySQL transactions?
Derivation of Biot Savart law in College Physics
0211 embedded C language learning
2022年版图解网络PDF
随机推荐
零基础自学STM32-野火——GPIO复习篇——使用绝对地址操作GPIO
3D drawing ()
HDU_ p1237_ Simple calculator_ stack
The intelligent material transmission system of the 6th National Games of the Blue Bridge Cup
一题多解,ASP.NET Core应用启动初始化的N种方案[上篇]
[robot library] awesome robots Libraries
Global and Chinese market of wheelchair climbing machines 2022-2028: Research Report on technology, participants, trends, market size and share
[width first search] Ji Suan Ke: Suan tou Jun goes home (BFS with conditions)
Concept of storage engine
HDU_p1237_简单计算器_stack
SQL table name is passed as a parameter
[depth first search notes] Abstract DFS
[solution] every time idea starts, it will build project
How to generate rich text online
技术管理进阶——什么是管理者之体力、脑力、心力
Use Scrollview and tabhost to realize vertical scrollbars and tabs
【无标题】数据库中一条查询SQL执行的过程
Use the list component to realize the drop-down list and address list
Template_ Find the reverse pair of permutations_ Sort based on merge
Derivation of Biot Savart law in College Physics