• 2024-11-20【数据结构OJ】【图论】货币套汇(图路径)
    题目描述套汇是指利用货币汇兑率的差异将一个单位的某种货币转换为大于一个单位的同种货币。例如,假定1美元可以买0.7英镑,1英镑可以买9.5法郎,1法郎可以买到0.16美元。通过货币兑换,一个商人可以从1美元开始买入,得到0.7×9.5×0.16=1.064美元,从而获得6.4%的利润。给定n种
  • 2024-11-18常用代码模板3——搜索与图论
    算法基础课相关代码模板 树与图的存储树是一种特殊的图,与图的存储方式相同。对于无向图中的边ab,存储两条有向边a->b,b->a。因此我们可以只考虑有向图的存储。(1)邻接矩阵:g[a][b]存储边a->b(2)邻接表://对于每个点k,开一个单链表,存储k所有可以走到的点。h[k]存储这个单链
  • 2024-11-18图论入门书籍(2024.11.16)
    1、我的第一本算法书(2018年11月)2、程序员的数学4:图论入门(图灵出品)3、图论入门[Graphs:AnIntroduction](2022.09)4、啊哈!算法5、趣味的图论问题6、动画算法与数据结构(图灵出品)-2024.037、图论一个迷人的世界(2022.09)8、现代图论9、图论算法理
  • 2024-11-16[做题笔记 #3] 图论
    目录[做题笔记#3]图论1.P6175无向图的最小环问题2.P4568[JLOI2011]飞行路线3.P5304[GXOI/GZOI2019]旅行者二进制划分+最短路做法正反建图+最短路做法4.P6961[NEERC2017]JourneyfromPetersburgtoMoscow5.P4899[IOI2018]werewolf狼人6.P4606[SDOI2018]
  • 2024-11-15比赛讲解:图论算法(11.11~11.15)
    图论算法T1-U502532找水杯一道水题,基本上和P4779一样(我连样例都搬过来了,能不一样吗?)所以呢,你们可以直接用\(Dijikstra\)1.最初起点到达所有点的距离都是未知的,记作无穷大。2.在对起点的邻接点进行扫描后发现,起点可以通过某些边抵达一些节点,那么就更新d数组(d[i]用于记录起点s
  • 2024-11-13学图论
    Boruvka每一轮操作,对于每个点来说,让他和“最近的与他有连边且还未连通的点”相连。最多\(\logn\)轮,每轮\(O(n\cdotp)\),\(p\)为找“最近的与他有连边且还未连通的点”的复杂度。\(O(np\logn)\)Kruskal重构树设从小到大加边,性质:二叉树,\(2n-1\)个点(数组开两倍)原图的
  • 2024-11-112024.11.11随笔
    关于计划因为临近noip,时间很紧,需要做好这段时间的计划。然后就是我太天真了,以为还有一周多的时间自习,然后可以自己做之前的题。结果我们要互相讲课、期间还穿插考试。自习时间就少得可怜了!做题然后我只能加快脚步了。今天我去把图论的题做一做,然后发现就自己图论是真的不行。
  • 2024-11-03算法-图论-拓扑排序
    1.拓扑排序(卡码网117)fromcollectionsimportdeque,defaultdictdefmain():num_node,num_edge=map(int,input().split())inDegrees=[0for_inrange(num_node)]edges=defaultdict(list)for_inrange(num_edge):source,target=
  • 2024-11-01图论基础
    图论基础图的存储图的遍历最小生成树kruskal算法prim算法最短路Dijkstra算法Bellman-Ford算法SPFA算法Floyd-Warshall算法图论基础拓扑排序一笔画问题关键路径差分约束基环树DAG边集数组采用结构体存储边,包括边的起点、终点、权值等信息,这个结
  • 2024-10-31LUOGU_图论
    LUOGU_图论ST表+DFN序LCA每次在自己的DFN序位置放入自己的父亲询问的时候l+1ST表+欧拉序LCA\(u,v\)在欧拉序中的第一个位置之间的深度最小位置就是LCA树的直径相距最远的两个点\(\max_{u,v}dis(u,v)=\max_{u,v}(dep_u+dep_v-2dep_{lca(u,v)})\)边权非负:两次BFS边权有
  • 2024-10-30基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
    时间序列数据表示了一个随时间记录的值的序列。理解这些序列内部的关系,尤其是在多元或复杂的时间序列数据中,不仅仅局限于随时间绘制数据点(这并不是说这种做法不好)。通过将时间序列数据转换为图,我们可以揭示数据片段内部隐藏的连接、模式和关系,帮助我们发现平稳性和时间连通
  • 2024-10-28算法学习笔记3:图论
    图论拓扑序列有向无环图一定存在拓扑序列,通过入度为0来判断该点是否可以加入队列。强连通分量定义:在有向图G中,如果两个顶点u,v间有一条从u到v的有向路径,同时还有一条从v到u的有向路径,则称两个顶点强连通。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向非强连通图
  • 2024-10-27《 C++ 修炼全景指南:十七 》彻底攻克图论!轻松解锁最短路径、生成树与高效图算法
    摘要1、引言1.1、什么是图?图(Graph)是计算机科学和离散数学中一种重要的数据结构,用来表示一组对象之间的关系。一个图由顶点(也称为节点,Vertex)和边(Edge)组成。顶点表示实体,而边则表示实体之间的关联或连接关系。根据边的性质,图可以分为无向图和有向图。在无向图中,边没有方向
  • 2024-10-27算法汇总整理篇——回溯与图论的千丝万缕及问题的抽象思考
    回溯算法(重中之重)回溯法解决的问题都可以抽象为树形结构,集合的大小就构成了树的广度,递归的深度就构成了树的深度。(回溯的核心:分清楚什么数据作为广度,什么数据作为深度!!!!!)voidbacktracking(参数){if(终止条件){存放结果;return;}for
  • 2024-10-25基础图论重温
    最短路 https://www.luogu.com.cn/problem/B3647都是基于松弛更新最短路的,即:dis[u][v]=min(dis[u][v],dis[u][k]+dis[k][v]),其中u是起点,v是终点,k是u->v路径中的一点。记得考虑重边,自环的情况!!  Floyd 多源最短路,即求多个u->v的最短路,考虑dp转移即可。O(n^3),与n
  • 2024-10-24提高组图论专题 2
    提高组图论专题2T1[NOIP2013提高组]华容道首先,暴力BFS即可AC,但要注意以下几点:队列必须手写;用\(\text{vis}\) 数组剪枝。然后我们来看正解。参考这位的DFS思路,发现将暴力DFS改成每次让起点移动,具体过程为空格移动到起点、起点移动到空格,且在这个过程中空格不能
  • 2024-10-23【图论】(五)最短路径算法(D / BF / SPFA / F / A*)
    最短路径算法(D/BF/SPFA/F/A*)1.最短路径之dijkstra(D算法)思路模拟过程程序实现拓展2.dijkstra算法堆优化思路程序实现3.Bellman_ford算法(BF算法)松弛模拟过程拓展4.Bellman_ford队列优化算法(又名SPFA)模拟过程拓展5.Bellman_ford之判断负权回路思路拓展6
  • 2024-10-23图论优化
    图论优化三元环计数首先给所有边定向,从度数小的点指向度数大的点,如果度数一样,则从编号小的指向编号大的,最终形成一张DAG。枚举\(u\)以及\(u\)指向的点\(v\)以及\(v\)指向的点\(w\),如果\(u\)也指向\(w\)则成三元环。如果要一开始是有向图计数则最后判断一下\(u,v,w\)的方向即可
  • 2024-10-22代码随想录算法训练营 | 图论理论基础,98. 所有可达路径
    图论理论基础1.图的种类:有向图,无向图,加权有向图,加权无向图;2.度:无向图中有几条边连接该节点,该节点就有几度,在有向图中,每个节点有出度和入度;出度:从该节点出发的边的个数;入度:指向该节点边的个数;3.连通图:在无向图中,任何两个节点都是可以到达的;强连通图:在有向图中,任何两个节点是可以
  • 2024-10-22对CSP-S认证知识面的分析
    CCF举办的CSP-S认证从2019年开始,在这几年间,复赛的题目类型各有不同。分析一些客观的过去数据题目难度使用Luogu的题目评级机制,在过去的几年中:难度数量普及-\(2\)普及/提高−\(1\)普及+/提高\(5\)提高+/省选−\(7\)省选/NOI−\(5\)NOI/NOI
  • 2024-10-22CSP近四年总结及2024预测
    近四年算法出现频率(按频率排序,且按每年是否出现统计)动态规划dp——\(100\%(\frac{4}{4})\)贪心——\(100\%(\frac{4}{4})\)搜索——\(75\%(\frac{3}{4})\)图论——\(75\%(\frac{3}{4})\)二分——\(50\%(\frac{2}{4})\)基础数据结构——\(50\%(\frac{2}{4})\)
  • 2024-10-21图论模板
    最短路(dijkstra)无法处理负边权,时间复杂度O(mlogn)#include<bits/stdc++.h>#definefo(i,a,b)for(ll(i)=(a);(i)<=(b);(i)++)#definefd(i,b,a)for(ll(i)=(b);(i)>=(a);(i)--)#definelc(o<<1)#definerc((o<<1)|1)#definemk(x,y)make_pair((x),(
  • 2024-10-20图论基础
    定义与记号涉及常见或可能用到的概念的定义。关于更多,见参考资料。基本定义图:一张图\(G\)由若干个点和连接这些点的边构成。称点的集合为点集\(V\),边的集合为边集\(E\),记\(G=(V,E)\)。阶:图\(G\)的点数\(|V|\)称为阶,记作\(|G|\)。无向图:若\(e\inE\)没有