poj 1789 Truck History (克鲁斯卡尔)

POJ1789-Truck History【Prim】 北大POJ1789-Truck History【Prim】 解题报告+AC代码 立即下载


Truck History
Time Limit: 2000MS Memory Limit: 65536K
Total Submissions: 20140 Accepted: 7791

Description

Advanced Cargo Movement, Ltd. uses trucks of different types. Some trucks are used for vegetable delivery, other for furniture, or for bricks. The company has its own code describing each type of a truck. The code is simply a string of exactly seven lowercase letters (each letter on each position has a very special meaning but that is unimportant for this task). At the beginning of company's history, just a single truck type was used but later other types were derived from it, then from the new types another types were derived, and so on. 

Today, ACM is rich enough to pay historians to study its history. One thing historians tried to find out is so called derivation plan -- i.e. how the truck types were derived. They defined the distance of truck types as the number of positions with different letters in truck type codes. They also assumed that each truck type was derived from exactly one other truck type (except for the first truck type which was not derived from any other type). The quality of a derivation plan was then defined as 
1/Σ(to,td)d(to,td)

where the sum goes over all pairs of types in the derivation plan such that to is the original type and td the type derived from it and d(to,td) is the distance of the types. 
Since historians failed, you are to write a program to help them. Given the codes of truck types, your program should find the highest possible quality of a derivation plan. 

Input

The input consists of several test cases. Each test case begins with a line containing the number of truck types, N, 2 <= N <= 2 000. Each of the following N lines of input contains one truck type code (a string of seven lowercase letters). You may assume that the codes uniquely describe the trucks, i.e., no two of these N lines are the same. The input is terminated with zero at the place of number of truck types.

Output

For each test case, your program should output the text "The highest possible quality is 1/Q.", where 1/Q is the quality of the best derivation plan.

Sample Input

4
aaaaaaa
baaaaaa
abaaaaa
aabaaaa
0

Sample Output

The highest possible quality is 1/3.

题目链接:http://poj.org/problem?id=1789


题目大意:长度相同的n个字符数组代表n个点,两个字符数组之间不同字符个数即为这两点之间的距离大小。克鲁斯卡尔算法实现即可。


代码如下:

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
char s[2002][10];
int fa[2002];
struct A
{
    int x,y;
    int len;
}a[2000002];
int cmp(A a,A b)
{
    return a.len<b.len;
}
void get_fa()
{
    for(int i=0;i<2002;i++)
        fa[i]=i;
}
int find(int x)
{
    return x==fa[x]?x:fa[x]=find(fa[x]);
}
void Union(int a,int b)
{
    int a1=find(a);
    int b1=find(b);
    if(a1!=b1)
        fa[a1]=b1;
}
int main()
{
    int n,i,j,k;
    while(scanf("%d",&n)!=EOF&&n)
    {
		getchar();
        int t=0,ans=0,m=0;
        get_fa();
        memset(a,0,sizeof(a));
        for(i=0;i<n;i++)
            scanf("%s",s[i]);
        int l=strlen(s[0]);
        for(i=0;i<n;i++)   //建图过程
        {
            for(j=i+1;j<n;j++)
            {
                int cnt=0;
                for(k=0;k<l;k++)
                {
                    if(s[i][k]!=s[j][k])
                        cnt++;
                }
                a[m].x=i;
                a[m].y=j;
                a[m++].len=cnt;
            }
        }
        sort(a,a+m,cmp);
        for(i=0;i<m;i++)
        {
            if(find(a[i].x)!=find(a[i].y))
            {
                Union(a[i].x,a[i].y);
                ans+=a[i].len;
                t++;
            }
            if(t>n)
                break;
        }
        printf("The highest possible quality is 1/%d.\n", ans);
    }
    return 0;
}


webrtc进阶-- FlexFEC 实现原理与调试分析(m80 代码对齐版) WebRTC 中 FlexFEC 技术解析与调试指南 摘要:本文深入分析 WebRTC 的 FlexFEC(灵活前向纠错)技术实现原理,重点探讨其在 m80 版本中的协商机制、接收侧恢复流程以及 SFU 场景下的特殊处理。文章指出 FlexFEC 通过动态冗余策略提升弱网抗丢包能力,详细解析了编解码器分配、SSRC 映射、包恢复等关键环节,并提供了针对 XR+SFU 场景的调试建议。调试时可重点关注 FEC 包接收与媒体包恢复日志,以验证链路有效性。 阅读详情

相关推荐

【随机过程】Markov Chain的定义及发展历程与实际应用

本模块书写的初衷:由于在学习张波张景肖等学者所著的《应用随机过程》存在着不甚了解的知识点,经过个人查找资料并整理、分享,希望能够为有同样疑惑的读者贡献绵薄之力,同时如果个人编写内容有错误,恳请读者指正。本文为对《应用随机过程》第42页中Markov Chain基本概念的补充。1.Markov Chain的定义俄国数学家 Andrey Andreyevich Markov 研究并提出一个用数学方法就能解释自然变化的一般规律模型,被命名为马尔科夫链(Markov Chain)。

qq_49657150的博客 3742

最小生成树(prim( ) 算法)

1.题目引入: Advanced Cargo Movement, Ltd. uses trucks of different types. Some trucks are used for vegetable delivery, other for furniture, or for bricks. The company has its own code describing each type of a truck. The code is simply a string of exactly se

weixin_52914088的博客 406

POSS-NH2:氨基化笼型聚半倍硅氧烷的合成与应用探索

本文详细介绍了氨基化笼型聚半倍硅氧烷(POSS-NH2)的合成方法与应用。通过水解缩合与官能团转化两种主流路线,可制备出这种关键的纳米增强材料。其核心价值在于通过表面的氨基与树脂基体形成化学键合,从而显著提升复合材料的热稳定性和机械性能。文章以环氧树脂改性为例,展示了POSS-NH2在航空航天、电子封装等高性能领域的应用潜力。

grpc6streamer的博客 498

POJ 1789 Kruskal

Truck History Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 22819 Accepted: 8849 DescriptionAdvanced Cargo Movement, Ltd. uses trucks of different types. Some trucks are used for vege

仰望天空 422

百元DIY手机荧光计:低成本荧光检测平台搭建与实战

荧光检测是一种基于物质受特定波长光激发后发射更长波长荧光的分析技术,其核心原理在于光与物质的相互作用。通过选择性激发与检测,该技术能实现对痕量物质的高灵敏度、高特异性定量分析,在生物医学、环境监测和食品安全等领域具有重要价值。传统荧光分光光度计虽精度高,但成本昂贵、体积庞大且操作复杂,限制了其在现场快检和普及教育中的应用。本文聚焦于如何利用智能手机的高性能摄像头和处理器,结合低成本光学滤光片和LED光源,构建一个便携、经济的DIY荧光检测平台。该方案通过简化光路设计,采用带通滤光片进行波长选择,并利用图像处

weixin_34194829的博客 304

Zemax实战:20×超高清变焦镜头设计全流程解析(从架构到制造)

本文详细解析了使用Zemax软件设计一款20倍变焦比、恒定F2.8光圈8K超高清镜头的全流程。从应对恒定光圈、宽光谱与8K解析力三大挑战的初始架构规划,到构建多重组态模型、分七阶段进行像差优化与公差分析,最终跨越制造鸿沟,为广播级影视与高精度工业检测应用提供了实战指南。

sun99的博客 550

POJ1789——最小生成树

1.题意: 输入: n输入,代表有n个长度为7的字符串,我们以字符串本身为结点,题中定义了两个节点之间的距离,定义为两个字符串中相同位置处不同的字符的个数,所以我们发现本题是个非常稠密的图 我们直接用二维矩阵记录所有的数据比较能够大米毒的合理利用空间 输出最小生成树的倒数 2.算法: 本题中我们会发现,边的数目非常的庞大 这就引出了一个问题 Krustral算法要涉及到排序,如此大

72 73 76 89 82 84 89 81 552

懒人精灵手游内存技术分析

教学声明:全套教程教学用到的游戏采用手游私服网游进行测试,不针对任何游戏。教学只做计算机技术研究,不做其他用途。

yizhihaoren123的博客 1655

A - Truck History

A - Truck History Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Practice POJ 1789 Description Advanced Cargo Movement, Ltd. uses trucks o

CSUST_ACM的专栏 836

AIGC游戏本地化:用AI实现多语言自动翻译

游戏本地化是游戏全球化战略的关键环节,传统人工翻译方式成本高、周期长。本文旨在探讨如何利用AIGC技术实现高效、准确、低成本的游戏多语言自动翻译解决方案。我们将覆盖从文本翻译到语音合成的完整本地化流程,重点关注AI技术在游戏特定语境下的应用优化。文章首先介绍游戏本地化的核心挑战和AI解决方案,然后深入讲解关键技术原理,接着通过实战项目演示具体实现,最后讨论应用场景和未来趋势。AIGC:人工智能生成内容,指利用AI技术自动生成文本、图像、音频等内容本地化(Localization)

AI 领航者的博客 1336

强化学习实战——OpenAI Gym环境配置+实战演示(win10)

遇到问题:无法安装pickle5原因是:python3.8与该包不兼容,必须降python3.7的版本。

LZL2020LZL的博客 4898

poj1789--prim

每天进步一点点~ 今天写的是poj1789 题目的大致意思是: 给很多个长度为7的字符串,判断字符串的最小衍生数 使用的是prime算法 #define LOCAL #include &lt;stdio.h&gt; #include &lt;string.h&gt; #define MAXN 2000 + 10 #define MAXL 7+10 char truckTypes...

kanwoerzi 209

SAP-ABAP:SAP创建CDS视图(SQL语句创建)实例详解

通过Eclipse和ADT创建CDS视图是SAP开发中的一项重要技能。CDS视图不仅简化了数据建模,还提供了高性能和灵活性。掌握CDS视图的开发和使用,可以帮助你更好地支持SAP S/4HANA和Fiori应用的开发。

baidu_35680696的博客 1823

Truck History 【POJ--1789】【普里姆&&克鲁斯卡尔】【邻接矩阵】

Description Advanced Cargo Movement, Ltd. uses trucks of different types. Some trucks are used for vegetable delivery, other for furniture, or for bricks. The company has its own code describing ea

zhang_di233的专栏 372

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

POJ 1789 Truck History

ACM POJ 最小生成树

上千主上-贝库塔 587

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

poj 1789 Truck History

首先吐一下槽这是英语阅读训练啊、、、玛德,看不懂啊、、受不了啊,英语太水了啊、、呜呜呜呜#include #include #include #include #include #include using namespace std; struct Edge { int u, v, w; } edge[4000100]; char s[3100][10]; bool c

I am a slow walker, but I never walk backwards! 2823

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

POJ1789-Truck History .

题目链接:http://poj.org/problem?id=1789 题目的大概意思就是给你n个字符串。每个字符串只有7的长度。然后分别给这些字符串编号。不同编号之间的距离就是他们有多少个不同的字母。(同一个位置字母不相同也算)然后一个编号只能由另一个派生出来。派生的代价就是他们呢之间的距离。现在要你求最小的总代价。 编号的范围是2-2000.属于稠密图。求最小生成树最好用prim算法。用克鲁

NaCl__的博客 676

POJ 1789 Truck History【题解报告|最小生成树】

题目大意 用一个7位的string代表一个编号,两个编号之间的distance代表这两个编号之间不同字母的个数。一个编号只能由另一个编号“衍生”出来,代价是这两个编号之间相应的distance,现在要找出一个“衍生”方案,使得总代价最小,也就是distance之和最小。 例如有如下4个编号: aaaaaaa baaaaaa abaaaaa aabaaaa 显然的,第二,第三和第四编号分别从第一编号衍生出来的代价最小,因为第二,第三和第四编号分别与第一编号只有一个字母是不同的,相应的distance都是1

csyifanZhang的博客 336

Truck History 并查集 POJ 1789

#include &lt;iostream&gt; #include &lt;cstdio&gt; #include &lt;cstring&gt; #include &lt;cmath&gt; #include&lt;algorithm&gt; using namespace std; int fa[2005]; char s[2020][10]; struct Edge{ int ...

dujuancao11的博客 291

POJ 1789 Truck History 最小生成树 kruskal && Prim

Truck History 克鲁斯卡尔 最小生成树,两两不同个数为权值, Description Advanced Cargo Movement, Ltd. uses trucks of different types. Some trucks are used for vegetable delivery, other for furniture, or for bricks. The company has its own code describing each type of a

jianjun的专栏 489

POJ1789 Truck History 最小生成树 + 路径压缩

  首先要强调一点 这不是一道ACM题,这是他妹的一道英语阅读理解。   题意:输入N 代表有N种汽车。每两种汽车之间有一条边,边的权值的定义为 两串字符串之间有几个不同的字母。。。稠密图。。。。普利姆 或者 克鲁斯卡尔 + 路径压缩   我认为后者能通吃所以很无耻的不会第一种。。。。。    1 #include <iostream> 2 #incl...

155

Poj 1789 Truck History【最小生成树】

Truck HistoryTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 21660 Accepted: 8419DescriptionAdvanced Cargo Movement, Ltd. uses trucks of different types. Some trucks are used for vegetable

希望的专栏 806

poj-1789-Truck History

题意: 先给你一个N,然后给你N组字符串。 两个字符串之间的距离就是两个字符串之间不同字符的个数。 让你链接所有的字符串的最小距离。 做法: 把每一个字符串当成一个节点,两个节点之间的权值即为距离。然后求链接所有节点的最小生成树。 据说用prim算法求稠密图,可是我用的是克鲁斯卡尔。。。嘿嘿】 不过得优化一下才能过,不然会超时的。 #include #include #incl

青竹梦 575

poj1789 Truck History

Truck History Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 21523   Accepted: 8372 Description Advanced Cargo Movement, Ltd. uses trucks of different types

张小象 575
上一篇: noj 1860 保研(01背包 概率dp)
下一篇: codeforces 538 A.Cutting Banner
雨狮子
博客等级 码龄12年 24粉丝 185原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值