随笔分类 - 图论--tarjan
摘要:$n,m \leq 1e9$,$n*m$的网格中有$c \leq 1e5$个是黑的,其他是白的。问:使至少两个白的不连通,最少需要再把几个白的涂黑。 可以发现答案是-1,0,1,2啦。-1要么没白的,要么一个白的,要么两个相邻白的。如果是两个不相邻白的答案就是0,这些可以特判掉。 其他的情况,可以建
阅读全文
摘要:$n \leq 50000$个人,每个人有$K \leq 10$个属性,现对每一个前缀问:进行比赛,每次任意两人比任意属性,小的淘汰(保证同一属性不会出现两个相同的数),最终有几个人有可能获胜。 明显是一个竞赛图了,缩完点就是求拓扑序最高那个强连通分量的大小。现在要一个一个把人加入。 可以观察到,缩
阅读全文
摘要:还好这场没打 MD什么破题 n<=100000,m<=200000的图问从s点出发能否走奇数条边到一个没有出度的点。 直观的想法:做一个bfs,$f(i,0/1)$表示从$s$出发到$i$能否走奇数/偶数条边,搜出来,找一个$f(t,1)=1$ && $ chudu(t)=0$的点做终点。 如果找不
阅读全文
摘要:n<=1000,m<=30000的图,问割掉边权和尽量小的0、1或2条边使S和T不连通,输出割了哪些边,无解-1. 道理是很好懂的,先随便找S到T的一条路径,找不到输出0,找到的话这条路上至少有一条边要删,那枚举一下割谁,对剩下的图再做tarjan即可。复杂度(n*m)。 然而!!写起来是很难写的。
阅读全文
摘要:n<=300000,m<=300000的图,图上只有奇环,q<=300000个询问每次问:一个区间内有多少个子区间,满足只保留编号在该区间的点以及他们之间的边,可以构成一个二分图。 终于走出了第一步。。Pi--从点i开始往前延伸最早到哪里就不是二分图了。由于这个数组是单调的,只要这个数组求出来就可以
阅读全文
摘要:n<=500条边的图,求:最少设置多少关键点,使得当任意某一个点不能经过时其他点都至少能到达一个关键点,并输出方案数。 tarjan求点双,如果一个点双里面没有割点,那这就是一个孤立的点双分量,至少要设置两个点。如果有割点,大概是这样的情况: 红色的这些“叶子”分量,也就是只有一个割点的分量,是一定
阅读全文
摘要:n<=100000个点m<=100000条边有向图,有一次机会沿着某条边反方向走一次,求从一号点出发最终到达一号点的路径经过的不同的点的数量的最大值。 tarjan缩完点,如果没机会反方向的话答案就是1所在的分量的大小。现在有了,其实就是1->1能到达的某个点->反向边->能到达1的某个点,所以只要
阅读全文
摘要:n<=5000个点m<=10000条边的无向图,求最少加几条边使它变成边双联通图,就是任意两点间都有至少2条边不相交的路径。 tarjan缩点,答案是叶子节点数/2向上取整。 不过要注意这里的“叶子节点数”是指度数为1的点,并不是最后那棵树以某个点为根的叶子节点树。如果找叶子点数一定要以某个点为根,
阅读全文
摘要:m<=4000条关系描述n<=1000个事件,每条关系描述了一个或语句表示“x事件发生或不发生”或“y事件发生或不发生”,求每个事件是必发生、必不发生还是都行,无解输出IMPOSSIBLE。 是一个2-SAT问题。建图后把每个事件发生不发生都dfs一遍即可。听说缩点后会更快,就写了个tarjan。
阅读全文

浙公网安备 33010602011771号