bzoj4579[Usaco2016 Open]Closing the Farm--by lethalboy
2016-10-18 18:24
447 查看
如果按照正常的思维方式从前向后依次操作下去,会发现这是一个无向图上逐渐消去点找强连通分量数的过程,那么就想到用并查集了,而并查集作用在于合并而非分离,故倒着做来达到合并强连通分量的过程。这样就简单了。
今天开始做rsk大神的题表
%%%BraketBN%%%
(膜大神,RP++)
附代码:
今天开始做rsk大神的题表
%%%BraketBN%%%
(膜大神,RP++)
附代码:
#include<iostream> #include<cstdio> #include<cstdlib> #include<algorithm> #include<cmath> #include<cstring> #include<string> #define N 200020 #include<vector> using namespace std; int read() { int x=0,f=1;char ch; while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; } int n,m; bool vis ,ok ; vector<int>G ; int a ,f ; int find(int x){return x==f[x]?x:f[x]=find(f[x]);} int main() { n=read(),m=read(); for(int i=1,a,b;i<=m;i++) { scanf("%d%d",&a,&b); G[a].push_back(b); G[b].push_back(a); } for(int i=1;i<=n;i++) scanf("%d",&a[i]),f[i]=i; int cnt=0; for(int i=n;i;i--) { int u=a[i]; cnt++;vis[u]=1; for(int j=0;j<G[u].size();j++) { int v=G[u][j]; if(!vis[v])continue; int fa=find(u),fb=find(v); if(fa!=fb) { if(fa>fb)swap(fa,fb); f[fb]=fa; cnt--; } } if(cnt==1)ok[i]=1; } for(int i=1;i<=n;i++) if(ok[i])printf("YES\n"); else printf("NO\n"); }</span><span style="font-size: 24px;"> </span>
相关文章推荐
- bzoj 4579 [Usaco2016 Open]Closing the Farm
- [BZOJ4579][Usaco2016 Open]Closing the Farm(并查集)
- bzoj 4579: [Usaco2016 Open]Closing the Farm
- 【BZOJ 4579】【Usaco2016 Open】Closing the Farm
- 【BZOJ4579】[Usaco2016 Open]Closing the Farm【并查集】【离线】
- bzoj 4579: [Usaco2016 Open]Closing the Farm (并查集+离线)
- 【bzoj4579】[Usaco2016 Open]Closing the Farm 并查集
- BZOJ 4579 Closing the Farm - 并查集
- 麻烦的DP-BZOJ-1605-[Usaco2008 Open]Crisis on the Farm 牧场危机
- bzoj 1605: [Usaco2008 Open]Crisis on the Farm 牧场危机(DP)
- BZOJ1605 [Usaco2008 Open]Crisis on the Farm 牧场危机
- BZOJ 1605 [Usaco2008 Open]Crisis on the Farm 牧场危机 DP
- BZOJ 1605 [Usaco2008 Open]Crisis on the Farm 牧场危机 DP
- bzoj1621【Usaco2008 Open】Roads Around The Farm
- BZOJ1605: [Usaco2008 Open]Crisis on the Farm 牧场危机
- bzoj1637: [Usaco2007 Mar]Balanced Lineup ——by lethalboy
- bzoj 4578 [Usaco2016 OPen]Splitting the Field
- BZOJ_1621_[Usaco2008_Open]_Roads_Around_The_Farm_分岔路口(模拟+大水题)
- bzoj1636: [Usaco2007 Jan]Balanced Lineup ——by lethalboy
- 【BZOJ4576】【BZOJ4580】【Usaco2016 Open】262144 贪心