题目:http://acm.hdu.edu.cn/showproblem.php?pid=6604
解析:https://blog.csdn.net/a710128/article/details/49913553
支配数其实就是拓扑排序+LCA+dfs序+带权并查集
目的就是求出有向图从一个点到另一个点必须经过的点的个数
/*
支配树板子
用于求解从u到v有多少个必须经过的点
步骤
1.拓扑排序
2.根据LCA,求每个点的最近必经点的位置。这里由于是拓扑排序过的,所以就保证了这个序列上的一定是从树根往树枝上去的
3.建立支配树
*/
#include <iostream>
#include <cstdio>
#include <cmath>
#include <string>
#include <cstring>
#include <algorithm>
#include <limits>
#include <vector>
#include <stack>
#include <queue>
#include <set>
#include <map>
#define lowbit(x) ( x&(-x) )
#define pi 3.141592653589793
#define e 2.718281828459045
#define INF 0x3f3f3f3f