tarjan
weixin_44019404
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #467 B - Sleepy Game
题目问题等同于找从s出发的路径,经过的点为偶数。是否存在这样的路径。 我们可以通过暴力dfs找到一条路径,深度为偶数。但是这里的问题在于,对于环该怎么处理。因为可能沿着环走一圈,可以改变一个点的深度的奇偶。 所以我们对于每一个点,针对奇偶进行判断。 这样的话,最多2*n个点,题目要求大于1e6输出draw,所以如果是dra’w的情况图中必然存在环。所以利用tarjan先判环即可。 #include...原创 2020-03-30 19:26:04 · 89 阅读 · 0 评论 -
HDU-6370
tarjan找环。我们通过枚举一个点的入边为wolf/village出边为wolf/village ,可以知道,当且仅当,一个环里面有且仅有一个出边为wolf的时候,被指向的那个人为wolf。 一旦能够确定wolf了,那么所有指向wolf的人,如果出边为village,那么这个人也是wolf。反向dfs即可。 #include<iostream> #include<cstring...原创 2020-03-23 10:57:05 · 137 阅读 · 0 评论 -
Codeforces Round #599 E - Sum Balance
tarjan缩点,枚举子集。 首先avg即平均值是可以直接求出来的,我们假设第i个盒子给出去a,那么平衡需要的是,avg-sumi+a,我们把所有数字开一个map保存下来,如果有该数字,连一条有向边,从a到avg-sumi+a。 可以看到,因为题目说了unique ,所以一个点的出度是固定的,即1。现在要求所有盒子平衡,且每个盒子必须拿出来一个值。那么我们从a连出了一条有向边,如果这是一个可行解的...原创 2019-12-22 23:44:06 · 103 阅读 · 0 评论