[CF652E]Pursuit For Artifacts

Pursuit For Artifacts

题解

很模板的一道题。

很容易发现,从点a到点b的路径除了经过的边双连通分量以外都是固定的,而其经过的边双连通分量中的边必定存在一种方案使得其被经过。

于是,我们可以对边双连通分量进行缩点,并记录其中是否存在一条权为1的边。并通过倍增,找出从ab的路径上,是否存在权为1的边。

其实由于只查一次可以不用倍增,但笔者还是这样打了。

源码

#include<bits/stdc++.h>
using namespace std;
#define MAXN 300005
typedef long long LL;
typedef unsigned long long uLL;
const LL mo=1e9+7;
typedef pair<int,int> pii;
template<typename _T>
_T Fabs(_T x){return x<0?-x:x;}
template<typename _T>
void read
posted @ 2022-07-07 00:13  StaroForgin  阅读(14)  评论(0)    收藏  举报  来源