比赛打到一半溜了···没发现是个裸题···大意了啊大意了···
题目
Example
Input
1
3 1 4
1 2
1 2
2 3
3 1
2 2
Output
1001
AC代码
#include<bits/stdc++.h>
using namespace std;
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define pre(i,a,b) for(int i=a;i>=b;--i)
#define m(x) memset(x,0,sizeof x)
#define PI acos(-1)
typedef long long ll;
const int INF = 0x3f3f3f3f;
const int mod = 1e9+7;
const int maxn = 1e5+10;
int fun[maxn],n,m,q,T;
//并查集查找是否在一个集内
int find(int k)
{
return fun[k]==k?k:fun[k] = find(fun[k]);
}
//预处理
void pd()
{
for(int i=1;i<=n;i++)fun[i] = i;
}
int main()
{
int u,v;
scanf("%d",&T);
while(T--)
{
scanf("%d%d%d",&n,&m,&q);
pd();
while(m--)
{
scanf("%d%d",&u,&v);
int fa = find(u);
int fb = find(v);
if(fa!=fb)fun[fa] = fb;
}
while(q--)
{
scanf("%d%d",&u,&v);
int fa = find(u);
int fb = find(v);
if(fa==fb)printf("1");
else printf("0");
}
puts("");
}
return 0;
}