随笔分类 - Tarjan
摘要:传送门 如果选择 $i$ 当陪审团成员,那么 $i$ 认识的猫一定不能参加 又因为总人数和猫数要为 $n$ ,那么 $i$ 认识的猫 的主人也一定要当陪审团成员(不然总数不够) 所以可以考虑这样构图,对每个人 $i$ 向认识的所有猫的主人 $j$ 连边,那么如果选择 $i$ , $i$ 能到达的所有
阅读全文
摘要:传送门 题目看一半:"woc 裸的 $2-sat$ 白给??" 看完以后:"...???" 如果没有 $f$ 的限制,那就是个白给的 $2-sat$ 问题,但是现在有这个限制... 直接枚举 $f$ 显然不行,考虑把 $f$ 也纳入我们构建的 $2-sat$ 模型 对于某个限制在 $[l,r]$ 的
阅读全文
摘要:传送门 显然的 $2-sat$ 问题,甚至不用输出方案 每种菜不是汉式就是满式,分成两个节点 $i,n+i$ 分别表示满式和汉式 对于限制 $m_i,m_j$,如果 $i$ 为汉式则 $j$ 一定要为满式,如果 $j$ 为汉式 $i$ 一定为满式 所以连边 $(n+i,j),(n+j,i)$ 其他情
阅读全文
摘要:传送门 显然每次走到一个联通块肯定要把整个联通块的草场都走一遍,考虑缩点 然后直接建分层图跑最长路就好了 (为了方便,以下的强连通分量均称为点) 但是有一个小问题,如果反着走可能走到以前走过的点,怎么判断(因为每个点只有一次贡献) 其实根本不用判断,因为如果从一号点出发,走出去后要走回来一定要逆行一
阅读全文
摘要:传送门 对于一个点双联通分量,如果它连接了两个或更多割点 那么不论哪个点GG都有至少一条路通到其他的点双联通分量,所以我们不用考虑 如果它只连接一个割点,如果这个割点GG,那整个块也一起GG,所以要再这个块里建一个出口 如果它没有连接割点,只建一个出口还不够,可能这个出口所在的点GG,所以要两个出口
阅读全文
摘要:传送门 把所有学校的关系构成一个图,显然一个强联通分量的所有学校只要有一个有新软件,其他学校也都会有 考虑缩点,发现入度为 0 的块一定要给,因为没有其他人给它 入度不为 0 的块一定有其他人给,我们只要给 能给它的块 提供软件就可以了 所以就是入度为 0 的块一定给,不为 0 的块一定不用给 子任
阅读全文
摘要:传送门 好好读题 读懂了题后就不难了 可以发现和强联通分量的定义有点像 强连通的要求:对于任意两点u,v都存在一条路径使得 u->v 并且 v->u 而半联通的要求:对于任意两点u,v都存在一条路径使得 u->v 或者 v->u 那么显然一个强联通分量肯定属于半联通子图 那先考虑缩点,看看缩点后的情
阅读全文
摘要:传送门 显然可以把所有间谍的关系建一个图 如果A间谍手中掌握着关于B间谍的犯罪证据,那就从A连一条边到B 如果贿赂了一个间谍,那么整个联通块的间谍肯定都被控制 那就先把图缩成DAG 如果控制了一个块,那么这个块后面所有的块都能被控制 为了控制所有块,一定要贿赂没有入度的块,因为它不能被其它块控制到
阅读全文
摘要:传送门 算法:Tarjan & DP 显然缩点后的图是一个DAG DAG上搞DP是基本操作啊 按拓扑序搞一波DP就好了 设 f[ i ] 表示从起点抢劫到 DAG 上的点 i 时能得到的最多的钱 那么 f[ i ] = max( f [ i ] , f[ j ] + sval[ i ]) ( j 有
阅读全文
摘要:传送门 肯定是最短路 而且题目有限制,不存在负环 所以可以跑堆优化的Dijkstra 但是因为有负边权,所以跑得很慢 这时可以利用题目的条件 每个联通块内是没有负边权的 所以可以优先处理单个块之内的最短路 这样一个块一个块地处理 可以跑得很快 可以用Tarjan处理每个点所在的联通块 代码: #in
阅读全文