最小生成树问题。

给你一组字母序列,问你最有可能的演变,也就是把全部的序列连通所花费最小。

每次派生的花费 取决于两个字符串上 不同的字母个数。

于是两两算出花费,然后Kruskal算最小。

#include<cstdio>
#include<cstring>
#include<string>
#include<queue>
#include<algorithm>
#include<queue>
#include<map>
#include<stack>
#include<iostream>
#include<list>
#include<set>
#include<cmath>
#define INF 0x7fffffff
#define eps 1e-6
using namespace std;
int n,m;
int fa[2001];
struct lx
{int u,v,len;
}l[2000001];
int father(int x)
{if(x!=fa[x])fa[x]=father(fa[x]);return fa[x];
}
bool cmp(lx a,lx b)
{return a.len<b.len;
}
char str[2001][8];
int getlen(char *a,char *b)
{int ans=0;for(int i=0;i<7;i++)if(a[i]!=b[i])ans++;return ans;
}
int main()
{while(scanf("%d",&n),n){for(int i=1;i<=n;i++){fa[i]=i;scanf("%s",str[i]);}int cot=0;for(int i=1;i<=n;i++){for(int j=i+1;j<=n;j++){l[cot].u=i;l[cot].v=j;l[cot++].len=getlen(str[i],str[j]);}}sort(l,l+cot,cmp);int ans=0;for(int i=0;i<cot;i++){int fu=father(l[i].u);int fv=father(l[i].v);if(fu==fv)continue;fa[fv]=fu;ans+=l[i].len;}printf("The highest possible quality is 1/%d.\n",ans);}
}

转载于:https://www.cnblogs.com/hrhguanli/p/4048891.html

POJ 1789 Truck History相关推荐

  1. Kuskal/Prim POJ 1789 Truck History

    题目传送门 题意:给出n个长度为7的字符串,一个字符串到另一个的距离为不同的字符数,问所有连通的最小代价是多少 分析:Kuskal/Prim: 先用并查集做,简单好写,然而效率并不高,稠密图应该用Pr ...

  2. poj 1789 Truck History(最小生成树 prim)

    题目:http://poj.org/problem?id=1789 大意:每个卡车都有自己的编号,由七位字母组成 d(to,td) is the distance of the types指t0 和 ...

  3. POJ - 1789 Truck History (最小生成树)

    https://vjudge.net/problem/POJ-1789 题意 n个车牌,长度固定为7,车牌与车牌间的距离为不同字母个数.问所有车牌形成一棵树的最小边权和是多少. 分析 最小生成树模板 ...

  4. 【POJ】【最小生成树】1789 Truck History

    1 思路 题目链接. 最小生成树(MST)问题. 2 代码 代码来自宇宙吾心博客. #include <iostream> #include <limits> #include ...

  5. (最小生成树)Truck History --POJ -- 1789

    链接: http://poj.org/problem?id=1789 Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 2213 ...

  6. 【POJ - 1789】【ZOJ - 2158】【SCU - 1832】Truck History (最小生成树)

    题干: Description Advanced Cargo Movement, Ltd. uses trucks of different types. Some trucks are used f ...

  7. Truck History prime

    题目表述: Advanced Cargo Movement, Ltd. uses trucks of different types. Some trucks are used for vegetab ...

  8. J - Truck History

    题目: Advanced Cargo Movement, Ltd. uses trucks of different types. Some trucks are used for vegetable ...

  9. poj 1789 kruscal水题

    继续水水题... 题目:http://poj.org/problem?id=1789 把车看成结点,车之间的距离看作权重就是一个图了,然后求最小生成树... 的确水题,但看题目花了挺长时间,不知道如果 ...

最新文章

  1. 如何设置listview每个item高度
  2. 【时间序列】再次出发!FaceBook 开源一站式服务时序利器 Kats !
  3. acm公选课第三节4.7直播4.9补 递归 深搜啥的
  4. Git/SQL/正则表达式练习平台
  5. powershell 学习地址
  6. 浅谈C++类(7)--析构函数
  7. UVa 297 四分树
  8. 智能优化算法:自私羊群优化算法-附代码
  9. IT从业人员的10个专业论坛
  10. linux 内网服务 端口,LINUX 内网设备将服务映射到公网地址
  11. 数码管动态显示从0显示到999999,每隔0.1s增加1个数
  12. uboot 中内存测试,内存检测方法
  13. 英雄连1V1战胜专家电脑!
  14. const的小把戏。
  15. 关于UEFI引导的理解
  16. 七鑫易维彭凡演讲实录:眼球追踪技术让VR更“人性”
  17. 企业微信收款后可以进行退款吗?如何操作?
  18. 两独立样本T检验实例(用SPSS16.0实现)
  19. 编程训练题:多项式求和
  20. 超级壁纸android,超级壁纸大全app下载

热门文章

  1. 就微软启动盗版系统黑屏的个人看法
  2. 联发科有没有高端处理器_OPPO Reno5系列发布:联发科的高端梦实现了?
  3. MCU实战经验:多种的按键处理
  4. \multirow 表格文字居中(latex强制换行)
  5. pyhton列表习题
  6. 云容器实例服务入门必读
  7. Alibaba Java诊断利器Arthas实践--使用redefine排查应用奇怪的日志来源
  8. mysql + Fluently NHibernate + WebAPI + Autofac
  9. FPP(彩包)、COEM(简包)、MOLP(license授) 介绍
  10. Android程序ToDoList增加配置项页面