X-Plosives问题, LA 3644, 并查集算法
2012-11-15 22:14
323 查看
利用并查集检测回路。
package ProgrammingContest; import java.io.File; import java.util.Scanner; public class XPlosives_LA_3644 { public int MAX = 100000; public int[] P = new int[MAX]; //初始化并查集,每个元素为一个独立集合 public void init() { for ( int i=0; i<MAX; i++ ) P[i]=i; } //找一个元素所属集合,并压缩路径 public int find(int x) { if ( P[x] != x ) { P[x] = find(P[x]); } return P[x]; } //合并两个集合 public void merge(int x, int y) { P[x] = y; } //利用并查集合检测回路 public static void main(String[] args) { try { int count = 0; XPlosives_LA_3644 set = new XPlosives_LA_3644(); set.init(); Scanner scanner = new Scanner(new File(args[0])); while ( scanner.hasNext() ) { int x = scanner.nextInt(); while ( x != -1 ) { int y = scanner.nextInt(); x = set.find(x); y = set.find(y); if ( x == y ) ++count; else set.merge(x, y); x = scanner.nextInt(); } } System.out.println(count); } catch (Exception e) { e.printStackTrace(); } } }
相关文章推荐
- LA 3644 - X-Plosives,并查集
- LA 3644 X-Plosives (并查集)
- LA - 3644 - X-Plosives
- UVALive(LA) 3644 X-Plosives (并查集)
- LA 3644 X-Plosives
- LA - 3644 - X-Plosives
- LA 3644 X-Plosives [并查集]
- UVALive(LA) 3644 X-Plosives (并查集)
- LA 3644 X-Plosives
- LA 3644 X-Plosives 易爆物
- LA 3644 - X-Plosives ( 也即UVA 1160)
- LA 3644 X-Plosives
- (DS 《算法竞赛入门经典》)LA 3644 X-Plosives(并查集)
- LA 3644 - X-Plosives ( 也即UVA 1160)
- LA 3644 X-Plosives
- [LA] 3644 - X-Plosives [并查集]
- LA 3644 X-Plosives (Europe - Southwestern - 2006/2007)
- LA 3644 X-Plosives
- LA 3644 X-Plosives (Europe - Southwestern - 2006/2007)
- LA 3644(p191)----X-Plosives