tarjan
twh233
嘻嘻
展开
-
求割点模板——Network
A Telephone Line Company (TLC) is establishing a new telephone cable network. They are connecting several places numbered by integers from 1 to N . No two places have the same number. The lines are bi转载 2017-02-17 17:03:26 · 173 阅读 · 0 评论 -
Gym - 100676H(树的直径+边连通分量板子)
题意:T组数据。n个点 m条边。无向图。给你a,b,c a-b相连权值为c得到一个无向图。你可以指定一个点为主城市。与这个点相连的所有城市的边权为0,,然后问离这个点的最远距离是多少。做法:肯定是一个连通分量吧。然后边双连通缩点以后就是一棵树,找树上的直径,首都一定是直径上的点。直径一定是这棵树上最长的距离。求树直径做法:先随便找一个点然后一直dfs。一直deep+1到不能再dfs原创 2017-07-22 23:48:35 · 352 阅读 · 0 评论 -
强连通分量板子 hdu 3072
传送门题意:简单点说就是求把所有强连通分量连在一起所需的最小花费 解析:先把所有强连通分量求出来,再求不同连通分量连接起来的最小花费,最后把除0所在的连通分量所需的最小花费连接起来。int node[N];//顶点集合int instack[N];//标记是否在stack中int stack[N];int Belong[N];//各顶点属于哪个强连通分量int DF原创 2017-07-22 23:33:36 · 266 阅读 · 0 评论 -
poj 1144 求割点(+割边板子
传送门题意:就要给你一个图,求有多少个割点#include #include #include #include #include using namespace std;const int maxn=10010;const int maxm=100010;vectorG[105];int low[105],dfn[105],cut[105],cont=1,原创 2017-07-23 00:00:28 · 245 阅读 · 0 评论 -
Gym 100712H(边双联通+树的直径)
题意:问给你一个无向图。你可以任意加一条边问加边之后最少的桥数是多少做法:先缩点。缩完之后走一个树的dfs,求两个端点并且记录深度。肯定把树的两端连起来的桥数最少吧。然后联通分量总数-树的直径deep就是答案了。//china no.1#include #include #include #include #include #include #include #原创 2017-07-23 14:23:59 · 449 阅读 · 3 评论 -
Hawk-and-Chicken
传送门题目大意:有N个人进行投票,想要选择出最受欢迎的人,投票的规则如下 1.不能投给自己 2.投票可以传递,比如A投给B一票,B投给C一票,那么C就得到了A的一票和B的一票问票数最多能得多少,得到最高票的有哪些人解题思路:求出所有的强连通分量,这些强连通分量里面的人得到的票数都是一样的,为强连通分量内的点数-1接着将强连通分量进行缩点,用桥连接起来,反原创 2017-07-23 15:55:50 · 435 阅读 · 0 评论 -
hdu3861 The King’s Problem 强连通分量+二分图匹配
传送门The King’s ProblemTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3064 Accepted Submission(s): 1080Problem Description原创 2017-07-23 16:00:33 · 303 阅读 · 0 评论 -
2017 多校 Function(置换群
传送门题目大意:给你一个数组A,和一个数组B,数组A是【0~n-1】的排咧,数组B是【0~m-1】的排列。现在定义F(i)=bF(ai);问有多少种取值,使得F(i)全部合法。写出样例2的公式:①F(0)=bF(2)②F(1)=bF(0)③F(2)=bF(1)设想一下,这个题仔细想想有映射的关系,如果定原创 2017-07-26 22:17:27 · 477 阅读 · 0 评论