图论的自我救赎(悲)
文章平均质量分 54
洛斯马里
只有相信CSC大人才能变强
展开
-
Tarjan算法求强连通分量、割点、割边
算法应用:求解有向图的强连通分量Tarjan算法涉及的变量:dfnudfn_{u}dfnu: 深度优先搜索遍历时结点uuu被搜索的次序lowulow_{u}lowu: 能够回溯到的最早的已经在栈中的结点。设以uuu为根的子树为subtreeusubtree_{u}subtreeu。 lowulow_{u}lowu定义为以下结点的dfndfndfn的最小值:subtreeusubtree_{u}subtreeu中的结点;从subtreeusubtree_{u}subtreeu 通过一条不在原创 2022-01-30 14:22:18 · 1166 阅读 · 0 评论 -
网络流——刷题记录
POJ 3041 Asteroids链接简述:N*N的坐标系,有K颗行星,一次可以消灭一行或者一列行星,最少需要几次?方案:以横坐标方向和纵坐标方向的坐标为点,建立顶点两个顶点集,行星(x,y)则变成由横坐标点x指向纵坐标y的点,进行一个二分图的建立二分图中,最小顶点覆盖等于最大匹配,因此问题可以变成一个二分图匹配问题。最后使用网络流求解。...原创 2022-01-25 17:13:24 · 298 阅读 · 0 评论 -
codeforces1328E. Tree Queries(树上点祖先的判断)
题目链接题目大意:给你一棵树,根为节点1,进行m次查询,每次查询k个节点。判断是否存在一条由根到节点u的路径,使k个节点在这条路径上或距离这条路径距离不大于1.思路:每次选取距离根深度最深的点fv,因为深度最深的点总是最难满足条件的点,剩下的k-1个点要么在路径上(是点fv的祖先),要么距离路径的距离为1(点集中点的第一个父结点是点fv的祖先),因为fv祖先的父结点还是 fv的祖先,我们让所有点都找到它的父结点,便于判断条件。这样,就把问题转换成了判断剩下 k-1个点的父结点是不是fv的祖先。之后原创 2021-05-11 21:26:08 · 459 阅读 · 1 评论 -
codeforces1363E. Tree Shuffling(树形DP与贪心处理 )
题目连接话不多说,请看代码与注释#include<iostream>#include<cstdio>#include<algorithm>#include<string>#include<vector>#define fast ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)#define ll long long#define endl "\n"using names原创 2021-03-15 19:28:43 · 130 阅读 · 0 评论 -
洛谷P3758 [TJOI2017]可乐
原题链接题目描述加里敦星球的人们特别喜欢喝可乐。因而,他们的敌对星球研发出了一个可乐机器人,并且放在了加里敦星球的 11 号城市上。这个可乐机器人有三种行为: 停在原地,去下一个相邻的城市,自爆。它每一秒都会随机触发一种行为。现在给加里敦星球城市图,在第 00 秒时可乐机器人在 11 号城市,问经过了 tt 秒,可乐机器人的行为方案数是多少?输入格式第一行输入两个正整数 NN,MM。NN 表示城市个数,MM 表示道路个数。接下来 MM 行每行两个整数 uu,vv,表示 uu,vv 之间有一条道路。原创 2021-02-22 22:44:50 · 258 阅读 · 0 评论 -
洛谷P1395 会议(图论,树形DP)
洛谷P1395 会议(图论,树形DP)题目描述有一个村庄居住着n个村民,有n-1条路径使得这n个村民的家联通,每条路径的长度都为1。现在村长希望在某个村民家中召开一场会议,村长希望所有村民到会议地点的距离之和最小,那么村长应该要把会议地点设置在哪个村民的家中,并且这个距离总和最小是多少?若有多个节点都满足条件,则选择节点编号最小的那个点。输入格式第一行。一个数n,表示有n个村民。接下来n-1行,每行两个数字a和b,表示村民a的家和村民b的家之间存在一条路径。输出格式一行输出两个数字x和yx表原创 2021-01-24 18:04:55 · 422 阅读 · 0 评论