首页 > 其他分享 >图论板子

图论板子

时间:2024-03-31 16:56:10浏览次数:17  
标签:图论 int cnt 板子 next edge include head

链式前向星的存储模板

#include<iostream>
#include<vector>
#include<algorithm>
#include<math.h>
#include<sstream>
#include<string>
#include<string.h>
#include<iomanip>
#include<stdlib.h>
#include<map>
#include<queue>
#include<limits.h>
#include<climits>
#include<fstream>
#include<stack>
typedef long long ll;
using namespace std;



const int N = 1000005, M = 2e6 + 5;

int head[N], cnt;//※
struct ed
{
	int from, to, next;
	int w;
}edge[N];//※
void init()
{
	for (int i = 0; i < N; i++)head[i] = -1;
	for (int i = 0; i < N; i++)edge[i].next = -1;
	cnt = 0;
}
//highlight:::
void addedge(int u, int v, int w)
{
	edge[cnt].from = u;
	edge[cnt].to = v;
	edge[cnt].w = w;
	edge[cnt].next = head[u];//※
	head[u] = cnt ++ ;//※
}

int main()
{
	init();
	int n, m; cin >> n >> m;//n个点,m条边
	for (int i = 0; i < m; i++) { int u, v, w; cin >> u >> v >> w; addedge(u, v, w); }
	//遍历节点2的所有邻居
	for (int i = head[2]; i != -1; i = edge[i].next)
	{
		cout << edge[i].to;
	}
	return 0;
}

标签:图论,int,cnt,板子,next,edge,include,head
From: https://www.cnblogs.com/zzzsacmblog/p/18106911

相关文章

  • 搜索与图论(四)树与图的广度优先遍历---以题为例
    给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环。所有边的长度都是 1,点的编号为 1∼n。请你求出 1 号点到 n 号点的最短距离,如果从 1 号点无法走到 n 号点,输出 −1。输入格式第一行包含两个整数 n 和 m。接下来 m 行,每行包含两个整数 a 和 b,......
  • 搜索与图论(三)树与图的深度优先遍历---以题为例
    给定一颗树,树中包含 n个结点(编号 1∼n)和 n−1 条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。输入格式第一行包含整数 n,......
  • 【图论】3.30学习记录 k短路(A*算法)
    从最短路说起的k短路3.26看了最短路和次短路。我们发现次短路实际上就是把最短路给破坏掉然后跑最短路...那我想...是不是破坏(k-1)次就能得到k短路呢,很显然是的,但是复杂度比较高,(因为一次dij是O(nlogn)级别的,次短路的话最坏要跑m次当最短路有m条边的时候)那么k比较大的时候就......
  • Tarjan板子
    Tarjan画图必备强连通分量(有向边)常见题建好有向图找强连通分量,同时记录每个强连通分量中节点的个数找节点个数最小的强连通分量点击查看代码structEdge{ intto,next;}edge[N];voidadd(intu,intv){ edge[++cnt].to=v; edge[cnt].next=head[u]; head[u]=cnt;......
  • Tarjan 算法——图论学习笔记
    Part.1引入在图论问题中,我们经常去研究一些连通性问题,比如:有向图的联通性:传递闭包——Floyd算法;有向图连通性的对称性:强联通分量(SCC)——Tarjan算法缩点;无向图的联通性:并查集;无向图的关键边:桥(割边)、边双——Tarjan算法缩点;无向图的关键点:割点、点双——Tarjan建立圆方......
  • 搜索与图论(二)bfs---以题为例
    给定一个 n×m的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。最初,有一个人位于左上角 (1,1)处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至右下角 (n,m)处,至少需要移动多......
  • 使用幸狐LuckFox Pico Plus 板子搭载Alpine Linux,运行dotnet net6程序 闪烁一颗LED灯
    程序截图 实拍 性能消耗非常小的,就是对ROM有要求,SDK+程序占了40M 步骤1:按照链接教程刷入系统步骤2:修改以太信息步骤3:使用ssh登录系统步骤4:搭建dotnet环境,使用手动的方式先下载运行时包下载.NET6.0Runtime(v6.0.28)-LinuxArm32AlpineBinaries(microsoft.co......
  • 【图论】3.26学习记录 最短路/最长路 次短路
    最短路:SPFA:特点:代码短好写,负权边必备,可以判环,容易被卡成O(nm);code:#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintMAXN=5e5+10;constintinf=2147483647;intdist[MAXN];intvis[MAXN];vector<pair<int,int>>e[MAXN];si......
  • 【图论 | 数据结构】用链式前向星存图(保姆级教程,详细图解+完整代码)
    一、概述链式前向星是一种用于存储图的数据结构,特别适合于存储稀疏图,它可以有效地存储图的边和节点信息,以及边的权重。它的主要思想是将每个节点的所有出边存储在一起,通过数组的方式连接(类似静态数组实现链表)。这种方法的优点是存储空间小,查询速度快,尤其适合于处理大规模......
  • Dijkstra邻接矩阵板子
    constintN=510;//节点个数intn;intg[N][N];//图intdist[N];//距离boolst[N];//判断点是否访问过intdijkstra(ints)//s表示起点,求s到任意点的最短距离{memset(dist,0x3f,sizeofdist);dist[s]=0;for(inti=0;i<n;i++){......