[HDU]4694 Important Sisters(支配树)】的更多相关文章

HDU \(Description\) 给定一张简单有向图,起点为\(n\).对每个点求其支配点的编号和. \(n\leq 50000\). \(Solution\) 支配树. 还是有点小懵逼. 不管了,说不定会讲,反正以后再说. https://blog.csdn.net/litble/article/details/83019578 有图的:https://blog.csdn.net/VioletSu/article/details/81041954 有题的:https://blog.csd…
支配树模板 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define ll long long inline int read() { int x;char c; '); +c-'; return x; } #define MN 50000 #define MM 100000 struct ZPS { +MN+]; ],rh[MN+],v[MN+],en,fa[…
求出支配树输出到father的和即可 支配树见:https://blog.csdn.net/a710128/article/details/49913553 #include<iostream> #include<cstdio> #include<vector> #include<cstring> using namespace std; const int N=300005; int n,m,h[N],cnt,se[N],id[N],rl[N],fa[N]…
Time Limit: 7000/7000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 598 Accepted Submission(s): 143 Problem Description There are N clones of Misaka Mikoto (sisters) forming the Misaka network. Some pairs of sister…
Important Sisters Time Limit: 7000/7000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 766    Accepted Submission(s): 192 Problem Description There are N clones of Misaka Mikoto (sisters) forming the Misaka networ…
HDU 5862 Counting Intersections(离散化+树状数组) 题目链接http://acm.split.hdu.edu.cn/showproblem.php?pid=5862 Description Given some segments which are paralleled to the coordinate axis. You need to count the number of their intersection. The input data guarant…
本篇口胡写给我自己这样的老是证错东西的口胡选手 以及那些想学支配树,又不想啃论文原文的人- 大概会讲的东西是求支配树时需要用到的一些性质,以及构造支配树的算法实现- 最后讲一下把只有路径压缩的并查集卡到$O(m \log n)$上界的办法作为小彩蛋- 1.基本介绍 支配树 DominatorTree 对于一个流程图(单源有向图)上的每个点$w$,都存在点$d$满足去掉&d&之后起点无法到达$w$,我们称作$d$支配$w$,$d$是$w$的一个支配点. 支配$w$的点可以有多个,但是至少会有…
Triple Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 388    Accepted Submission(s): 148 Problem Description Given the finite multi-set A of n pairs of integers, an another finite multi-set B …
区间交 Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 849    Accepted Submission(s): 377 Problem Description 小A有一个含有n个非负整数的数列与m个区间.每个区间可以表示为li,ri. 它想选择其中k个区间, 使得这些区间的交的那些位置所对应的数的和最大. 例如样例中,选择[2,5]…
来自FallDream的博客,未经允许,请勿转载,谢谢. 给定一张图,求每个点到第n个点必须经过的点的编号之和.n<=50000 一道支配树裸题 然后统计答案的时候可以正着推,ans[i]=ans[idom[i]]+i #include<iostream> #include<cstdio> #include<cstring> #define MN 50000 #define ll long long using namespace std; inline int…
Description P2597 [ZJOI2012]灾难 - 洛谷 | 计算机科学教育新生态 Solution 根据题意建图, 新建一个 \(S\) 点, 连向每个没有入边的点. 定义每个点 \(P\) 的支配点为从 \(S\) 到 \(P\) 的任意路径必经的点. 那么题意便为对于每一个点, 求有多少个点以它作为支配点. 考虑建立一棵支配树, 其中除了 \(S\) 之外的点 \(P\) 的父亲 \(\text{fa} (P)\) 表示距离 \(P\) 最近的支配点. 显然 \(\text{…
我也想要皮卡丘 跑一遍dijkstra,可以建出一个最短路DAG(从S到任意点的路径都是最短路),然后可以在上面建支配树 并不会支配树,只能简单口胡一下在DAG上的做法 建出来的支配树中,某点的祖先集就是从S到该点的必经点集,也就是说,炸掉某点,这个子树都会变得angryunhappy 大概就是按拓扑序来建这个树,每条边(u,v)是要把fa[v]=lca(u,fa[v]),等到v的入度为零时,再用最终的fa[v]连到v上,然后给v做以后求lca时倍增的预处理 最后dfs算出来除S点的最大的子树大…
题目背景 SOURCE:NOIP2015-GDZSJNZX(难) 题目描述 学校一年一度的学生艺术节开始啦!在这次的艺术节上总共有 N 个节目,并且总共也有 N 个舞台供大家表演.其中第 i 个节目的表演时间为第 i 个单位时间,表演的舞台为 Ai ,注意可能有多个节目使用同一个舞台.作为 Tom 的忠实粉丝之一的 Alice,当然要来逛一下啦,顺便看一下能不能要到 Tom 的签名. Alice 一开始会先在 A1 看完节目1再去闲逛. Alice 可以在舞台之间随便乱走.但是假如 Alice…
支配树目前只见到这一个应用,那就不独分一类,直接作为拓扑排序题好了. 每个点向所有食物连边,定义fa[x]为x的支配点,即离x最近的点,满足若fa[x]灭绝,则x也要灭绝. 这样,将fa[x]向x连边,则建出的新图是一棵树,这就是支配树(不是严谨的支配树,被出题人称为灭绝树) 建树流程是,将拓扑序反向,对于一个点x,求它的出点在新图(树)中的LCA,然后将这个LCA作为fa[x]即可. #include<cstdio> #include<cstring> #include<i…
link 我永远喜欢洛天依 给定一张图世末积雨云,你需要维护其支配树: 单点修改,子树修改,树链修改 子树求和,树链求和,多条树链的并集求和 撤销之前的操作 可以先用 Lengauer-Tarjan 算法 求出图的支配树,然后把它树剖,开一个线段树维护 至于多条树链的并集求和(有点像虚树的那种操作),现将所有点按照 dfn 排序,然后按照 dfn 的顺序依次加点 枚举节点a[i],每次假装a[1..i]的答案中除了a[i]到根的路径没有求值之外其它的都求值了,那么转移的时候需要加上当前点到lca…
先跑spfa求出最短路构成的DAG,然后在DAG上跑出支配树dfs出size取max即可 关于支配树,因为是DAG,支配点就是入点在支配树上的lca,所以一边拓扑一边预处理倍增,然后用倍增求lca #include<iostream> #include<cstdio> #include<cstring> #include<queue> #include<vector> using namespace std; const int N=400005…
Hdu 5274 Dylans loves tree (树链剖分模板) 题目传送门 #include <queue> #include <cmath> #include <cstdio> #include <cstring> #include <cstdlib> #include <iostream> #include <algorithm> #include <vector> #define ll long…
// hdu 1671 Phone List 字典树 // // 题目大意: // // 有一些电话号码的字符串长度最多是10,问是否存在字符串是其它字符串的前缀 // // // 解题思路: // // 字典树,先插入第一个字符串,然后依照查询,插入的方式进行訪问,发现了之后 // 就不用再进行字典树的操作了 // // // 感悟: // // 题目意思非常清楚,我在细节方面思考了非常久,插入方面在每一个串的根节点的时候加 // 上一个val值标记.查询的时候先看是否有标记,有则直接返回tr…
CF757F Team Rocket Rises Again 全体起立,全体起立,这是我A的第一道黑题(虽然是CF的): 来一波番茄攻击: 不扯淡了,这道题也是学习支配树(之前)应该做的题: 和灾难不同的是,那个是直接给你有向图,这里给的是无向图: 我们要求的是删除一个点会造成多少点的最短路发生变化,那么我们可以根据最短路再建一个有向图,这样就和灾难一样了: 很不幸,我建了四个图: 因为一开始写挂了所以图的编号是乱的:(这并不影响我AC)add是无向图,add2是有向图,add4是反图,add3…
Snacks HDU 5692 dfs序列+线段树 题意 百度科技园内有n个零食机,零食机之间通过n−1条路相互连通.每个零食机都有一个值v,表示为小度熊提供零食的价值. 由于零食被频繁的消耗和补充,零食机的价值v会时常发生变化.小度熊只能从编号为0的零食机出发,并且每个零食机至多经过一次.另外,小度熊会对某个零食机的零食有所偏爱,要求路线上必须有那个零食机. 为小度熊规划一个路线,使得路线上的价值总和最大 输入输出: 输入数据第一行是一个整数T(T≤10),表示有T组测试数据. 对于每组数据,…
题目传送门(内部题55) 输入格式 第一行,包含两个整数:$n,m,q$,表示敌军城市数.路数和情报数.接下来$m$行,每行包含两个整数:$u,v$,表示从$u$到$v$包含一条单向道路.接下来$q$行,每行包含一些整数:$k\ u_1\ u_2...u_k$,表示敌军会向$u_1...u_k$这$k$个城市派遣大军. 输出格式 对于每个询问,输出一行包含一个整数表示必经的城市数. 样例 样例输入1: 4 3 21 22 32 42 3 42 2 4 样例输出1: 22 样例输入2: 4 4 1…
题目传送门 题意:给出衣服有向无环图(DAG),,定义出度为0的点为中心城市,每次询问给出两个点,求破坏任意一个城市,使得这两个点至少有一个点无法到达中心城市,求方案数. 思路:首先建立反向图,将城市到若干个终点看成从若干个起点出发到某个城市,再用一个源点连接那些度为0    的点,即可看成从源点出发到某个城市.要炸掉一个点使得无法到达某个城市,那么需要炸掉的是从源点到该城市的必经点,考虑建立支配树,根据定义可知支配树到根的链上结点个数就是必经点的个数.两个城市的容斥减去 LCA 到根上这条链即…
正题 题目链接:https://www.luogu.com.cn/problem/P5180 题目大意 给出\(n\)个点的一张有向图,求每个点支配的点数量. \(1\leq n\leq 2\times 10^5,1\leq m\leq 3\times 10^5\) 解题思路 首先定义半支配点\(semi_x\)表示对于点\(x\)寻找一个\(dfn\)序最小的点\(y\)满足存在一条\(y\)到\(x\)的路径去掉头尾之后所有点的\(dfn\)序都大于\(x\)的. 考虑怎么求每个点的半支配点…
正题 题目链接:https://www.luogu.com.cn/problem/CF757F 题目大意 \(n\)个点\(m\)条边的一张无向图,求删除\(s\)以外的一个点改变\(s\)到最多点的最短路. 解题思路 挺裸的一道题的,首先肯定要跑一遍最短路搞出最短路树. 然后如果最短路树上\(s\)到某个点的路径被割掉了就会改变最短路长度,所以直接求出支配树然后看除了根以外最大子树的子节点就好了. 时间复杂度\(O(m\log n)\) code #include<cstdio> #incl…
对于有向图$G$和起点$s$,有以下定义和性质-- 为了方便,不妨假设$s$能到达$G$中所有点,并任意建立一棵以$s$为根的dfs树,以下节点比较默认均按照两点在这棵dfs树上的dfs序 支配点:$x$是$t$的支配点当且仅当将$x$以及相关的边删除后,不存在$s$到$t$的路径,也称作$x$支配$t$ (特别的,约定$s$和$t$均是$t$的支配点) 支配树:一棵以$s$为根的树,满足$t$的支配点恰是$t$到根的路径上所有点 引理1:若$x<y$,则$x$到$y$的路径(若存在)必然经过其…
洛谷题面传送门 真·支配树不 sb 的题. 首先题面已经疯狂暗示咱们建出支配树对吧,那咱就老老实实建呗.由于这题数据范围允许 \(n^2\)​ 算法通过,因此可以考虑 \(\mathcal O(n^2)\)​ 地建立支配树,具体来说我们枚举每个点 \(x\)​,将这个点暂时地从图中删除,如果对于图中另一个点 \(y\)​ 满足删除 \(x\) 后 \(1\) 不能到达 \(y\),那么 \(x\) 就在 \(y\) 的支配集中,这样我们再对整个 DAG DFS 一遍求出每个点的 DFS 序,然后…
Attack Time Limit: 5000/3000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Others) Total Submission(s): 2523    Accepted Submission(s): 805 Problem Description Today is the 10th Annual of “September 11 attacks”, the Al Qaeda is about to attac…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2795 Billboard Time Limit: 20000/8000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 13050    Accepted Submission(s): 5651 Problem Description At the entrance to the un…
任意门:http://acm.hdu.edu.cn/showproblem.php?pid=2795 Billboard Time Limit: 20000/8000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 28743    Accepted Submission(s): 11651 Problem Description At the entrance to the un…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394 Minimum Inversion Number                        Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)                                            Total Submission(s): 10…