Tarjan
HT008_123
家人们点点关注叭
展开
-
BZOJ 2140 稳定婚姻
2140: 稳定婚姻 Time Limit: 2 Sec Memory Limit: 259 MB Submit: 911 Solved: 422 [Submit][Status][Discuss] Description 我国的离婚率连续7年上升,今年的头两季,平均每天有近5000对夫妇离婚,大城市的离婚率上升最快,有研究婚姻问题的专家认为,是与简化离婚手续有关。 25岁的姗姗和男友谈恋爱半年原创 2017-09-10 17:04:40 · 305 阅读 · 0 评论 -
小机房的树
你猜这是啥 裸的LCA 以dis数组为从根到当前节点的总距离 u,v的最小距离即为 dis[u]+dis[v]-2*dis[LCA(u,v)] 至于LCA的实现方法是Tarjan,不会的可以看我上篇BLOG!#include <cstdio> #include <iostream> using namespace std; const int maxm=501000; struct nod原创 2017-10-16 15:54:15 · 339 阅读 · 0 评论 -
商务旅行
传送门 SPFA超时妥妥的! N-1条边,树上找最短路,八成是LCA 用经过的点两两建立要查询的LCA,边权设为1. 就可以转化为小机房的树那个题目233#include <cstdio> #include <iostream> using namespace std; const int maxm=501000; struct node{ int net; int to;原创 2017-10-16 16:22:22 · 235 阅读 · 0 评论 -
P1967 货车运输(Tarjan做法)
传送门 这个问题叫做『最大瓶颈路径』 最大瓶颈路径一定存在于最大生成树中/反证法:如果最大瓶颈路径不存在与最大生成树中。 这些不在最大生成树中的边会和最大生成树形成环。 我们删掉环上最小的边,保留这一条边,会得到一棵新的更大的生成树。 这与原来那棵树是最大生成树矛盾了。 注意,最短路不一定在最小生成树上(如一个环的情况)现在问题转变为求树上两点的最小边权问题了。 很明显是从u->LC原创 2017-10-17 15:17:21 · 703 阅读 · 0 评论 -
LG R7
T1 BFS暴力模拟#include <cstdio> #include <iostream> #include <queue> #include <cstring> #include <ctime> using namespace std; const int maxm=5100; int head[maxm],to[2*maxm],net[2*maxm]; int cnt; struct nod原创 2017-11-06 16:25:16 · 273 阅读 · 0 评论 -
P2746 [USACO5.3]校园网Network of Schools
A.求缩点后入度为零的点的个数 B.求缩点后max{入度为零的点的个数,出度为零的点的个数} #include #include #include #include #include #define ll long long using namespace std; const int maxn=120000; int head[maxn],net[2*maxn],to[2*m原创 2018-01-21 10:53:26 · 235 阅读 · 0 评论 -
Tarjan求LCA
我对Tarjan越来越崇拜了! 首先是最近公共祖先的概念(什么是最近公共祖先?): 在一棵没有环的树上,每个节点肯定有其父亲节点和祖先节点,而最近公共祖先,就是两个节点在这棵树上深度最大的公共的祖先节点。 换句话说,就是两个点在这棵树上距离最近的公共祖先节点。 所以LCA主要是用来处理当两个点仅有唯一一条确定的最短路径时的路径。 有人可能会问:那他本身或者其父亲节点是否可以作为祖先节点呢原创 2017-10-16 15:26:47 · 349 阅读 · 0 评论 -
[AHOI 2009] 最小割
题目描述: 给出一个网络 起点S以及汇点T 求 1:第i条边是否可能是最小割集的元素 2:第i条边是否一定是最小割集的元素 题目分析: WTF,我不想学图论了,放我走吧 嘤嘤嘤 这个问题叫做最小割唯一性问题 首先我们先在给出的网络上跑一遍网络流 1.不满流的边一定不行… 2.满足1的情况下,如果两个端点在一个强连通分量里,也是不行的. 边的两点还能相互到达 说明它们在割...原创 2018-04-03 16:23:23 · 282 阅读 · 0 评论 -
[HAOI 2010] 软件安装
题目描述: QAQ… 题目分析: 有依赖性关系的背包问题称为树形依赖背包… 用树形动归的方法解决 转移方程并不难 dp[i][j]表示以i为根的子树背包容量为j所能达到的最大价值 实际操作中我们可以用一个虚根来链接没有依赖的点… 这样的转移是 nm2nm2nm^2 的 听说黑科技可以做到 nmnmnm for(int i=w[now];i<=m;i++) dp[now][...原创 2018-05-08 15:35:31 · 264 阅读 · 0 评论