问题标题: 酷町堂:找错,有视频,对照看看就行!!!

0
0
已解决
叶轶尘
叶轶尘
高级守护
高级守护

 

#include<iostream>
using namespace std;
int n,m,q,f[20005];
void init(){
    for(int i=1;i<=n;i++) f[i]=i;
}
int fi(int u){
    if(f[u]==u) return u;
    return f[u]=fi(f[u]);
}
void un(int u,int v){
    u=fi(u);
    v=fi(v);
    if(u==v) return ;
    f[u]=v;
}
int main(){
    cin>>n>>m;
    init();
    for(int i=1;i<=m;i++){
        int u,v;
        scanf("%d%d",&u,&v);
        un(u,v);
    }
    cin>>q;
    while(q--){
        int u,v;
        cin>>u>>v;
        if(fi(u)==fi(v)) printf("%s\n","Yes");
        else printf("%s\n","No");
    }
    return 0;
}

有没有大佬知道这题哪里错了啊

课后作业哈

 

叶轶尘在2023-04-19 20:57:37追加了内容

ding

叶轶尘在2023-04-19 21:06:07追加了内容

果然是运气问题,同样的代码

变成了1126ms

怎么感觉有点像刷赞

叶轶尘在2023-04-19 21:25:29追加了内容

1


0
已采纳
薛乘志
薛乘志
初级启示者
初级启示者

可以把这里换成scanf

1
0
我要回答