7 条题解

  • -1
    @ 2023-7-16 15:24:36

    其实不用ios::sync_with_stdio(false);的。 我一开始用了ios但是一直错 我把ios删了后竟然对了 其实只要把cin改成scanf就行了 下面上代码

    using namespace std;
    int a[200005];
    int find(int x)
    {
    	if(a[x]==x) return x;
    	return a[x]=find(a[x]);
    }
    int main()//整体和并查集差不多
    {
    	int n, m, x, y;
    	cin>>n>>m;
    	for(int i=1; i<=n; i++)
    		a[i]=i;
    	for(int i=0; i<m; i++)
    	{
    		scanf("%d%d",&x,&y);//cin改scanf
    		a[find(x)]=a[find(y)];
    	}
    	int q;
    	cin>>q;
    	for(int i=0; i<q; i++)
    	{
    		scanf("%d%d",&x,&y);//cin改scanf
    		if(a[find(x)]==a[find(y)]) cout<<"Yes\n";
    		else cout<<"No\n";
    	}
    	return 0;
    }
    

    亲测能过,大家给个赞吧

    信息

    ID
    454
    时间
    1000ms
    内存
    512MiB
    难度
    2
    标签
    递交数
    292
    已通过
    78
    上传者