
图论
阿克劳斯
太阳就在眼前,何须留恋蜡烛
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
洛谷 - P3916 图的遍历(dfs+反向建图)
link思路一开始用邻接表+bfs做,t得很惨,只能拿60分原因是很多点其实被走过了,但是又不得不再走一次,因为前一次经过的时候,只得到了它某个前驱节点能走到的最大编号点,它能走到的最大点还是没得到改了改思路,反向建图+dfs。从最大的点开始搜,经过一个点,便给这个点标记上最大点,因为遍历顺序是从最大的开始,所以被标记后就不会再次被更新,这样思路可以ac代码#include<iostream>#include<algorithm>#include<cstri原创 2021-10-11 16:24:23 · 243 阅读 · 0 评论 -
LibreOJ - 2066 「HAOI2016」食物链 (拓扑排序)
题目link题目描述见链接输入格式第一行两个整数 和 ,接下来 行每行两个整数 描述 条能量流动关系。(保证输入数据符合生物学特点,且不会有重复的能量流动关系出现)输出格式一个整数,即食物网中的食物链条数。样例输入10 161 21 41 102 32 54 34 54 86 57 67 98 59 810 610 710 9输出9思路拓扑排序,但是要计算路径的条数生产者入度in必定为0,食物链的末端出度out必定为0起点必有一条路原创 2021-10-10 22:27:53 · 213 阅读 · 0 评论 -
图论 - 最短路,dijkstra朴素版及优化版, bellman_ford, spfa, floyd模板
单源最短路所有边权都是正数朴素版Dijkstra算法O(n2)O(n^2)O(n2) 适合边比较多的时候,即稠密图堆优化版的Dijkstra算法时候边少的是时候,即稀疏图使用O(mlogn)O(mlogn)O(mlogn) 适合边少的稀疏图存在负边权Bellman-FordO(nm)O(nm)O(nm)spfa,其实是Bellman-Ford的一个优化版一般是O(m)O(m)O(m),最坏情况下是O(nm)O(nm)O(nm)多源最短路FloydO(n3)O(n^3)O(n3)原创 2021-09-05 11:50:27 · 147 阅读 · 0 评论 -
CodeForces - 1245D Shichikuji and Power Grid (prim、不建立虚拟结点版)
题目链接:https://codeforces.com/problemset/problem/1245/D大致思路:prim比kruskal快很多,所以用了prim。prim一个样例基本50ms就跑出来了,kruskal要300+ms贪心,肯定是需要一个城市自建发电站的,那么选取一个花费最少的城市修建发电站city结构体记录是键发电站,还是连接城市每次照prim模板更新dist就可以了连线的前驱结点,遍历城市,如果花费和找到点的花费相同,那么就能作为前驱结点开long long,我一开始开的原创 2021-07-28 15:30:12 · 259 阅读 · 0 评论 -
HDU - 1233 还是畅通工程(最小生成树kruskal、prim模板)
题目链接Problem Description某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。Input测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间的距离。为简单起见,村庄原创 2021-07-31 11:25:17 · 181 阅读 · 0 评论 -
POJ - 1985 Cow Marathon (求树的直径,树上dp模板)
题目链接题目描述给定一个无向图,这个无向图满足其为一棵树,求树的直径的最大值输入格式第一行:两个数,n和m。n表示节点个数,m表示边的个数。接下来有m行,表示m条边:每行的前两个数是这条边连接的两个节点,第三个数是这条边的长度。后面有一个字母,不用管它。输出格式一个整数,树的直径的最大值样例输入7 61 6 13 E6 3 9 E3 5 7 S4 1 3 N2 4 20 W4 7 2 S样例输出52#include<iostream>#include<原创 2021-07-28 21:34:28 · 195 阅读 · 0 评论