7 条题解
-
0
实在没搞懂,去同步超一大堆,scanf稳过 大佬求解
#include<bits/stdc++.h> #define F(a,b) for(int i=(a);i<=(b);i++) #define DF(a,b) for(int i=(b);i>=(a);i--) using namespace std; int a[22222]; int get(int x) { if(a[x]==x) return x; return a[x]=get(a[x]); } int main() { int n,m; cin>>n>>m; for(int i=1;i<=n;i++) { a[i]=i; } for(int i=1;i<=m;i++) { int x,y; scanf("%d%d",&x,&y); a[get(x)]=a[get(y)]; } int t; scanf("%d",&t); while(t--) { int x,y; scanf("%d%d",&x,&y); if(a[get(x)]==a[get(y)]) { cout<<"Yes\n"; } else { cout<<"No\n"; } } return 0; }
-
-1
其实不用
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; }
亲测能过,大家给个赞吧
-
-1
#include <bits/stdc++.h> #define IOS ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0); #define re register using namespace std; typedef long long ll; int fth[1000010], n, m, q, x, y, tx, ty; int fnd(int t) { return (fth[t]==t?t:fth[t]=fnd(fth[t])); } int main() { IOS; cin>>n>>m; for(int i=0; i<=n; i++) fth[i]=i; for(int i=0; i<m; i++) { cin>>x>>y; tx=fnd(x), ty=fnd(y); if(tx!=ty) fth[ty]=tx; } cin>>q; while(q--) { cin>>x>>y; cout<<(fnd(x)==fnd(y)?"Yes\n":"No\n"); } return 0; }
-
-3
#include<bits/stdc++.h> using namespace std; int fa[20005],n,m; int get(int x){ return (fa[x]==x?x:fa[x]=get(fa[x])); } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>m; for(int i=1;i<=n;i++)fa[i]=i; for(int i=1;i<=m;i++){ int x,y; cin>>x>>y; fa[get(x)]=get(y); } cin>>m; for(int i=1;i<=m;i++){ int x,y; cin>>x>>y; if(get(x)==get(y))cout<<"Yes"; else cout<<"No"; cout<<endl; } return 0; }
-
-4
#include<bits/stdc++.h> using namespace std; int fa[20005],n,m; int get(int x){ return (fa[x]==x?x:fa[x]=get(fa[x])); } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>m; for(int i=1;i<=n;i++)fa[i]=i; for(int i=1;i<=m;i++){ int x,y; cin>>x>>y; fa[get(x)]=get(y); } cin>>m; for(int i=1;i<=m;i++){ int x,y; cin>>x>>y; if(get(x)==get(y))cout<<"Yes"; else cout<<"No"; cout<<"\n"; } return 0; }
-
-4
#include<bits/stdc++.h> using namespace std; int fa[20005],n,m; int get(int x){ return (fa[x]==x?x:fa[x]=get(fa[x])); } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>m; for(int i=1;i<=n;i++)fa[i]=i; for(int i=1;i<=m;i++){ int x,y; cin>>x>>y; fa[get(x)]=get(y); } cin>>m; for(int i=1;i<=m;i++){ int x,y; cin>>x>>y; if(get(x)==get(y))cout<<"Yes"; else cout<<"No"; cout<<endl; } return 0; }
- 1
信息
- ID
- 454
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 2
- 标签
- 递交数
- 292
- 已通过
- 78
- 上传者