poj-1287 不是题目水,而是数据弱
来源:互联网 发布:2017网络热词 编辑:程序博客网 时间:2024/06/06 18:18
这个题目很简单,就是最简单的最小生成树,并且用克鲁斯卡尔算法很容易。
但是,题目中说的边可能是无限的(The number of possible routes is unlimited),如果边有很多,该如何办呢?
当然,这里直接开10000条以上就行了,因为测试用例有限,加入10^10条呢?
这里说了最多50个点,那么最多也就1225条边,再多就是重复的,实际上我们只需要开这么大的空间就行,然后读入所有的边,将重复的保存最小值就可以了。
不过这里没必要,因为,边数比较少。。。。
直接代码,要想懂得此题目,首先要看看数据结构-并查集,不过本题目用普利姆算法可能更快点,因为点少,o(n^2).
#include <cstdio>#include <iostream>#include <algorithm>using namespace std;#definenMaxEdgeNum 15000//最大边数#define nMaxPointNum 100//最多点数int father[nMaxPointNum];//并查集模拟树的数组int rank[nMaxPointNum];//typedef struct EDGE{int u, v, w;}Edge;Edge edge[nMaxEdgeNum];int p, r, sum;//比较函数bool cmp(Edge a, Edge b){return a.w < b.w;}//下面依次是并查集的三个函数//初始化void Init(int n){for (int i = 1; i <= n; ++ i){father[i] = i;rank[i] = 0;}}//查找int Find(int x){if (x != father[x]){father[x] = Find(father[x]);}return father[x];}//合并void Union(int x, int y){int xx = Find(x);int yy = Find(y);if (rank[xx] > rank[yy]){father[yy] = xx;}else{father[xx] = yy;if (rank[xx] == rank[yy]){rank[yy] ++;}}}//克鲁斯卡尔算法实现void Kruskal(){sum = 0;Init(p);sort(edge + 1, edge + r + 1, cmp);for (int i = 1; i <= r; ++ i){if (Find(edge[i].u) != Find(edge[i].v)){sum += edge[i].w;Union(edge[i].u, edge[i].v);}}printf("%d\n",sum);}int main(){while (scanf("%d", &p) && p){scanf("%d", &r);for (int i = 1; i <= r; ++ i){scanf("%d %d %d",&edge[i].u, &edge[i].v, &edge[i].w);}Kruskal();}return 0;}
- poj-1287 不是题目水,而是数据弱
- 不是“想要”,而是“一定要”
- 软件工程--不是制造,而是创造!
- 不是钱,而是原则问题
- 情绪不是反应,而是决定
- 不是'script',而是'src'+'ipt'
- 爱不是得到,而是付出
- 终于找到问题所在了,原来不是程序问题,而是数据质量问题
- 《大数据时代》摘抄,第一部分大数据时代的思维变革(1、不是随机样本,而是全体数据)
- 《大数据时代》摘抄,第一部分大数据时代的思维变革(2、不是精确性,而是混杂性)
- 第一次看到不是用字典而是用内容的第一个字符来表示静态数据的。
- mysql按照每天分组查询数据结果排序不是从1到31而是1后接10
- 开源其实不是项目,而是态度
- 不是做不到,而是做不做
- B2B行业不是“冬天”,而是“春天”
- 房地产开发不是暴利行业,而是超级暴力行业.
- 未来最重要的不是操作系统 而是浏览器
- 目标不是一个点,而是一个方向
- ThinkPHP V2.2 说明文档没有说明的那些事!!!
- oracle 热备份与恢复实验
- 为不同的论坛板块、频道设置不同的头部、尾部模板
- 推荐一个学习vim的好地方,作者见解挺深,条例清晰
- -- sqlplus 默认参数修改
- poj-1287 不是题目水,而是数据弱
- Oracle 11gR2 RAC 实例 Admin-Managed 与 Policy-Managed 区别
- JAVA NIO 笔记
- Eclipse下配置github安装环境
- 我的oracle 10g的oracle用户下.bash_profile的配置文件
- 一部高清电影在不同分辨率下文件大概各有多大
- 七章 札记--C++ primer 之旅
- UITextField exc_bad_access solution
- 想请一位在校学生开发程序,有时间和精力的举手哦