Codeforces 292D. Connected Components
来源:互联网 发布:linux mysql高可用 编辑:程序博客网 时间:2024/05/17 09:04
并查集预处理+暴力
/** * Created by ckboss on 14-9-8. */import java.util.*;import java.io.*;public class ConnectedComponents { static class Edge{ int u,v; } static final int maxn=11000; static Edge[] edge=new Edge[maxn]; static int[] fa=new int[600]; static int n,m,q; static int Find(int x){ if(x==fa[x]){ return x; } return fa[x]=Find(fa[x]); } static boolean Union(int x,int y){ int X=Find(x),Y=Find(y); if(X==Y) return false; fa[X]=Y; return true; } static int[] front=new int[maxn],back=new int[maxn]; static int nf,nb; public static void main(String[] args){ InputStream inputStream = System.in; OutputStream outputStream = System.out; Scanner in = new Scanner(inputStream); PrintWriter out = new PrintWriter(outputStream); n=in.nextInt(); m=in.nextInt(); for(int i=1;i<=m;i++){ edge[i]=new Edge(); edge[i].u=in.nextInt(); edge[i].v=in.nextInt(); } for(int i=1;i<=n;i++) fa[i]=i; for(int i=1;i<=m;i++){ if(Union(edge[i].u,edge[i].v)==true){ front[nf++]=i; } } for(int i=1;i<=n;i++) fa[i]=i; for(int i=m;i>=1;i--){ if(Union(edge[i].u,edge[i].v)==true){ back[nb++]=i; } } q=in.nextInt(); while(q-->0){ int l,r; l=in.nextInt();r=in.nextInt(); for(int i=1;i<=n;i++){ fa[i]=i; } int t=n; for(int i=0;i<nf&&front[i]<l;i++){ if(Union(edge[front[i]].u,edge[front[i]].v)==true){ t--; } } for(int i=0;i<nb&&back[i]>r;i++){ if(Union(edge[back[i]].u,edge[back[i]].v)==true){ t--; } } System.out.println(t); } }}
0 0
- Codeforces 292D. Connected Components
- Codeforces 292D Connected Components (并查集)
- CodeForces 292D Connected Components (并查集+YY)
- CodeForces 292D Connected Components(并查集 前后缀)
- Codeforces 292D [Connected Components]--并查集的巧妙应用
- CodeForces 292D Connected Components(变种并查集+预处理)
- Codeforces-292D:Connected Components(m个并查集)
- Croc Round1 D Connected Components
- cf 209 D. Connected Components
- Connected Components Labeling
- Strongly Connected Components
- Count Connected Components
- 4-1 Strongly Connected Components
- c编写Strongly Connected Components
- Connected Components Workbench 1.0.2 编译报错一例
- HDU 4654 k-edge connected components
- hdu 4654 k-edge connected components
- sicily connected components in undiected graph
- struts2的拦截器的简单使用
- LeetCode OJ - Search in Rotated Sorted Array II
- Eclipse+maven 构建JEE工程(三) 创建springmvc+mybatis工程
- poj 3070 Fibonacci
- [面试题]虚函数和纯虚函数
- Codeforces 292D. Connected Components
- php 连接数据库
- MAC下的mysql安装、设置及删除
- JAVA学习第七课(封装及其思想)
- 智能指针的研究
- 软考进行时——数据结构
- 效率优化的一些体会
- hdu2547有剑无我
- 用SharePreference实现简单的保存账号密码