POJ 2075 Tangled in Cables 最小生成树】的更多相关文章

简单的最小生成树,不过中间却弄了很久,究其原因,主要是第一次做生成树,很多细节不够熟练,find()函数的循环for判断条件是 pre[i]>=0,也就是遇到pre[i]==-1时停止,i就是并查集的代表元. #include<stdio.h> #include<math.h> #include<string.h> #include<stdlib.h> #define MAXN 1000 #define MAXE 1000010 #define LEN…
http://poj.org/problem?id=2075 题目大意: 给你一些人名,然后给你n条连接这些人名所拥有的房子的路,求用最小的代价求连接这些房子的花费是否满足要求. 思路: 昨天20分钟的题,输入不小心写错了- -|||||看世界杯半场歇息随便看了下发现了....T T 用map进行下标的映射,然后求MST就可以. c++ #include<cstdio> #include<string> #include<map> #include<algorit…
题目链接:http://poj.org/problem?id=2784 Buy or Build Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 1528   Accepted: 592 Description World Wide Networks (WWN) is a leading company that operates large telecommunication networks. WWN would li…
题目链接:http://poj.org/problem?id=3026. Description The Borg is an immensely powerful race of enhanced humanoids from the delta quadrant of the galaxy. The Borg collective is the term used to describe the group consciousness of the Borg civilization. Ea…
POJ 2395 Out of Hay 本题是要求最小生成树中的最大长度, 无向边,初始化es结构体时要加倍,别忘了init(n)并查集的初始化,同时要单独标记使用过的边数, 判断ans==n-1时,即找到了最大边. #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <queue> #include <vector&g…
链接:poj 3026 题意:y行x列的迷宫中,#代表阻隔墙(不可走).空格代表空位(可走).S代表搜索起点(可走),A代表目的地(可走),如今要从S出发,每次可上下左右移动一格到可走的地方.求到达全部的A的路线总距离最小值 分析:能够先用bfs从上下左右四个方向将全部的A,S两两之间的最短距离,题目的目的是将S与全部的A连通,使得总距离最小,所以任选一点開始按最小生成树的算法做即可,并不是非要从S点開始 注:题目输入x,y后可能有非常多空格,能够用gets将多余的空格取走,开数组是尽量开大点.…
链接: http://poj.org/problem?id=1789 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22010#problem/G Truck History Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 14950   Accepted: 5714 Description Advanced Cargo Movement, Ltd. uses…
http://poj.org/problem?id=1679 题目大意: 给你一些点,判断MST(最小生成树)是否唯一. 思路: 以前做过这题,不过写的是O(n^3)的,今天学了一招O(n^2)的,哈哈~ 方法一: 首先先建立MST,然后把这个MST的边一个个尝试不使用,构建另外一颗MST,然后判断权值是否相等. 这样复杂度需要O(n^3).. 方法二: 还可以用次最小生成树的方法解决:如果最小生成树不唯一,那么次小生成树的权值和最小生成树相同. 我们可以枚举要加入哪一条新边.在最小生成树上加一…
题目链接:http://poj.org/problem?id=3026 题意:题意就是从起点开始可以分成多组总权值就是各组经过的路程,每次到达一个‘A'点可以继续分组,但是在路上不能分组 于是就是明显的最小生成树,点与点的距离要用bfs或者dfs求一下.这题bfs要稍微优化一下.不能下暴力的bfs就是两点两点之间 bfs这样会有很多重复的查询会超时,所以要一次性的bfs找到一个点就bfs到底. #include <iostream> #include <algorithm> #in…
题意:给定完全无向图,求其中m个子节点,要求Sum(edge)/Sum(node)最小. 思路:由于N很小,枚举所有可能的子节点可能情况,然后求MST,memset()在POJ G++里面需要cstring头文件. #include <iostream> #include <vector> #include <map> #include <cmath> #include <memory> #include <algorithm> #i…