哪错了

P3367 【模板】并查集

一点都不解释自己代码的意思就一股脑发过来 谁想看啊
by Red_w1nE @ 2016-10-30 14:55:28


提交前检查一下,自己测试的数据有没有删除。 错了两处:cin>>zi>>x>>y下面的换行符去掉 最后的 for(int j=1;j<=4;j++) printf("%d",p[j]);去掉 提交之前检查一下,自己测试一下
by yang2016 @ 2016-11-04 21:39:08


```cpp #include<cstdio> #include<iostream> using namespace std; int p[1000000+1]; int find(int x) { if(x==p[x])return x; p[x]=find(p[x]); return p[x]; } int main() { int n,m,zi,x,y; cin>>n>>m; for(int i=1;i<=n;i++) p[i]=i; for(int i=1;i<=m;i++) { cin>>zi>>x>>y; int xx=find(x); int yy=find(y); if(zi==1) if(xx!=yy)p[xx]=yy; if(zi==2) { if(p[xx]==p[yy])printf("Y\n"); else printf("N\n"); } //for(int j=1;j<=4;j++)cout<<p[j]<<' '; } } ```
by yang2016 @ 2016-11-05 20:13:58


帮你改了一下,主要是没有初始化,还有合并时的find函数问题
by yang2016 @ 2016-11-05 20:14:51


|