- 浏览: 109426 次
- 性别:
- 来自: 广州
最新评论
-
xinhemei:
我试了试,发现gmail和163的不行。好像ajax请求失败了 ...
jQuery实现邮箱自动登录 -
酒鬼_yuan:
我正在找 谢谢了
关于yui的学习
package middle; import java.io.BufferedInputStream; import java.util.Scanner; /** * poj2524 * 并查集的最简应用 * 只需要合并,并统计当前合集数就行了 * 好长时间啊!!! * 4622MS * @author NC */ public class Poj2524 { public static void main(String[] args) { final int MAXSIZE = 50001; Scanner scan = new Scanner(new BufferedInputStream(System.in)); int caseI = 1;//记录case int max = 0; while (scan.hasNext()) { int n = scan.nextInt(); int m = scan.nextInt(); if (n == 0 && m == 0) { break; } DisjointSet dj = new DisjointSet(MAXSIZE); int count = 0; for (int i = 0; i < m; i++) { int a = scan.nextInt(); int b = scan.nextInt(); int ra = dj.find(a); int rb = dj.find(b); if (ra != rb) { dj.union(ra, rb); count++; } } max = n - count; String result = "Case " + caseI + ": " + max; System.out.println(result); caseI++; } } } class DisjointSet { protected int n; protected int[] parent; protected int[] rank; public DisjointSet(int n) { this.n = n; init(n); } protected void init(int n) { this.parent = new int[this.n + 1]; this.rank = new int[this.n + 1];//用来记录元素是否已经添加过了 for (int i = 1; i <= n; i++) { parent[i] = i; rank[i] = 1; } } protected int find(int x) {//返回第x号元素的根结点 if (parent[x] != x) { parent[x] = find(parent[x]); } return parent[x]; } protected void union(int ra, int rb) {//参数是根结点 if (rank[ra] > rank[rb]) { parent[rb] = ra; } else if (rank[ra] < rank[rb]) { parent[ra] = rb; } else { rank[rb]++; parent[ra] = rb; } } }
发表评论
-
Poj3126
2010-05-29 22:07 1233import java.io.BufferedIn ... -
poj3125简单模拟
2010-05-25 11:44 1004import java.io.BufferedInputS ... -
还是水
2010-05-24 12:53 767import java.io.BufferedInputS ... -
Poj3085再水一下
2010-05-24 12:28 864import java.io.BufferedInputS ... -
Poj3673超水题
2010-05-24 12:12 867package easy; import java. ... -
Poj3278 广度优先搜索
2010-05-22 23:24 1330import java.io.BufferedInputS ... -
合唱队形
2010-05-09 21:45 2165#include <stdio.h> #incl ... -
动态规划经典问题 石子合并
2010-05-09 21:45 6102我们学校的oj的 #include & ... -
poj3199 高精
2010-05-09 21:44 967import java.io.BufferedInputS ... -
poj1002 郁闷的电话号码
2010-05-08 23:48 1280import java.io.BufferedInputS ... -
poj1298 无语。。。
2010-04-24 23:24 1018import java.io.BufferedInputStr ... -
poj1017 装箱问题 简单贪心
2010-04-18 16:56 2356import java.io.BufferedInpu ... -
poj1042 枚举+贪心算法
2010-04-18 00:45 1799import java.io.BufferedInputS ... -
zoj3197 Google Book 贪心算法
2010-04-15 23:54 1392#include <stdio.h> #defi ... -
Poj2453 an easy program
2010-04-09 00:19 870/* * To change this template, ... -
poj2299 递归与分治策略
2010-04-02 23:38 1437package hard; import java.io ... -
poj1723 数学问题
2010-04-02 15:31 1033package middle; import jav ... -
Poj1308 并查集
2010-03-18 15:21 1708package middle; import jav ... -
poj1405 高精
2010-02-28 11:09 1373import java.io.BufferedInputS ... -
poj1979 深度遍历
2010-02-27 20:56 1294问题重述 问题描述: ...
相关推荐
poj2492 A Bug's Life并查集应用的扩展,希望可以给大家带来用处
根据给定的信息,本文将详细解释“POJ 1988 简单并查集”中的核心知识点,包括并查集的基本概念、代码实现以及在本题中的具体应用。 ### 并查集基本概念 并查集是一种用于处理一些不交集的合并及查询问题的数据...
此外,它也是算法竞赛中的常见题目类型,例如POJ等在线编程平台上的题目就经常涉及并查集的使用。 综上所述,并查集是一种非常实用的数据结构,它在处理集合的连接与查找问题时具有高效性和灵活性,对于理解和掌握...
1. poj2524.cpp:这是一个POJ(Problem Setter's Online Judge)的编程题目,通常涉及到特定的算法问题,可能需要利用并查集解决连通性或路径查找问题。 2. hdoj1233最小生成树,克鲁斯卡尔.cpp:最小生成树是图论...
并查集基础 acm 算法 poj oi 并查集基础.ppt
在给定的标题“1089_bingchaji.rar_1089_bingchaji.rar _并查集”和描述“POJ1089 并查集可以解决 并查集加路径压缩”中,我们可以看到这是一个关于使用并查集解决特定问题的案例,可能来自于编程竞赛或练习。...
这份代码用C++实现了经典算法并查集,来源于poj题目1182
poj 1611 The Suspects 代码 并查集的应用
一种常见的方法是使用深度优先搜索(DFS)或广度优先搜索(BFS)来构建线段之间的连接,并通过并查集(Disjoint Set)数据结构来判断是否存在不相交的集合。 1. **数据结构**:首先,我们需要用数组或者链表存储...
以POJ 1988为例,这是一个经典的并查集应用题,题目要求计算每个木箱上面还有多少木箱。通过并查集的查找和合并操作,结合路径压缩,可以有效地解决这一问题。 ```cpp #include #include void unionu(int x, int...
* 简单并查集:简单并查集是指解决问题的简单并查集算法。 * 哈希表和二分查找等高效查找法:哈希表和二分查找等高效查找法是指解决问题的高效查找算法,如 poj3349、poj3274、POJ2151、poj1840、poj2002、poj2503。...
* 并查集的高级应用:例如 poj1703、poj2492。 * KMP 算法:例如 poj1961、poj2406。 4. 搜索: * 最优化剪枝和可行性剪枝。 * 搜索的技巧和优化:例如 poj3411、poj1724。 * 记忆化搜索:例如 poj3373、poj...
在Java环境下,你可以使用ArrayList来存储边以及它们的权重,用HashSet或者TreeSet对边进行排序,同时利用并查集(Disjoint Set)进行环路检测。 【文件名称列表】: Main.java 这表明你需要在Main.java文件中编写...
### 并查集详解 #### 一、并查集简介 并查集是一种非常重要的数据结构,主要用于处理一些不相交集合的合并及查询问题。它具有高效且简洁的特点,在算法竞赛以及实际应用中有着广泛的应用场景。比如在网络连接、...
poj1035、poj3080等训练了串的操作,poj2388、poj2299等则涉及排序问题,poj2524、poj1611等是并查集的实例,poj3349、poj3274等展示了哈希表和二分查找,poj3253是哈夫曼树的题目,poj2442和poj1442则关于堆。...
- 并查集的高级应用:如`poj1703, poj2492`。 - **搜索** - 最优化剪枝和可行性剪枝:如`poj3411, poj1724`。 - **动态规划** - 复杂的动态规划:如`poj1191, poj1054`。 - 记录状态的动态规划:如`poj3254, ...
Prim算法和Kruskal算法分别基于贪心策略和并查集数据结构,用于在带权图中找到连接所有顶点的最小总权重的树结构。 #### 拓扑排序 适用于有向无环图,帮助分析任务依赖关系,如poj1094所示。 #### 匹配算法 包括...
- **解释**:并查集是一种用于处理集合合并及查询操作的数据结构。 #### 2. 特殊优化技巧 - **例题**:poj3393, poj1472, poj3371, poj1027, poj2706 - **解释**:特殊优化技巧通常涉及特定问题的优化算法,如位...
3. **并查集**:用于处理不相交集合的问题(poj1195, poj3321)。 4. **区间查询**:如RMQ问题(poj3264, poj3368)。 5. **字符串匹配**:如KMP算法(poj1961, poj2406)。 ### 十三、进阶算法 1. **组合优化**:...