图的联通
青禾script
这个人太弱,所以也不知道能写什么23333
展开
-
[BZOJ 1179] Atm · 图的联通 & SPFA
Tarjan缩环,跑spfa最长路。 #include #include #include using namespace std; const int N=500005*2; struct arr{ int node,nxt; }e1[N],e2[N]; int h[N],head[N],tim,tot1,tot2,scc,dfn[N],low[N]; int q[N],l,r,da原创 2015-06-18 20:25:17 · 609 阅读 · 0 评论 -
[BZOJ 2438] 中山市选2011 杀人游戏 · Tarjan
一开始想到用并查集直接求联通,但是这样貌似并不可行。。。 每调查一个人,都会增加1/n的被杀概率,所以要尽量少调查人。 如果我们调查了一个人,那么和他认识的人我们全都能知道,以此类推,向下的人都可以知道,所以我们只要求入度为0的点的个数,这些人我们只能通过直接询问他才能知道是不是杀手,另外的人都可以通过这些人知道。 对于一个环里的人,我们只要知道一个点就能摸清所有点,所以先Tarjan缩环。原创 2015-06-19 15:22:31 · 588 阅读 · 0 评论 -
[NOIp 2015] 对D1T2的一些拓展研究
随便口胡,错误一大堆,欢迎打脸 D1T2因为只有n条边,所以只存在简单环,那我们把这个问题复杂一下,每个人可能能告诉多个人,也就是边的数量大于n,那么这样的话就会出现复杂环了。如果还是直接用tarjan求的话肯定是错的,因为tarjan每次找的是一整个大环。在这里想到了一种比较简单的解法。 我们每次选一个没有走过的点开始DFS,并一路将走到的点压入存路径的栈中,同时用visit[i]表示i原创 2015-11-18 12:31:32 · 916 阅读 · 0 评论 -
Graph · 图的联通 + 矩阵快速幂
来源:知乎 题意请戳上方↑ 首先有两个很好玩的性质: 1.有向图的一个强连通分量的周期d = 所有环的长度的最大公约数 1.有向图的周期D = 所有强连通分量的周期di的最小公倍数 然后如果要求最小的满足,由于k可能很大,那么用类似倍增的思想来求,我一开始傻*用的二分,T出一片天。 另外因为,矩乘的时候要压位。 #include using namespace std;原创 2016-04-04 17:34:01 · 958 阅读 · 0 评论