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



1 思路

题目链接。
最小生成树(MST)问题。

2 代码

代码来自宇宙吾心博客。

#include <iostream>
#include <limits>
#include <cstring>
using namespace std;
const int N=2001;char    c[N][8];                // 保存字符串
int     m[N][N];                // m[i][j]第i个结点与第j个结果之间权值
int     d[N];                   // 遍历时存储最小值
bool    v[N];                   // 遍历时存储结点是否被访问过
int     n;// 比较字符串返回路径权值
int cmp(int a, int b){int n = 0;for(int i=0; i<7; i++)if(c[a][i] != c[b][i])n ++;return n;
}
//Prim算法
void prim(){int i, j;for(i=1; i<=n; i++)         // 把第1个结点所有邻结点的路径保存在d中
        d[i] = m[1][i];memset(v, 0, sizeof(v));int ans=0;while(1){int mark = -1;int min = numeric_limits<int>::max();for(i=1; i<=n; i++)if(!v[i] && min>d[i]){ // 找到最短的路径,结点保存在mark中,权值保存在min中
                min = d[i];     mark = i;}if(mark == -1){            // mark==-1表明经历上面的for循环后mark没有变化,说明所有的结点都已经访问过(v中标记也所有的结点)
            cout<<"The highest possible quality is 1/"<<ans<<"."<<endl;return;}v[mark] = 1;ans += min;for(i=1; i<=n; i++)     if(v[i]==0 && d[i]>m[mark][i])d[i] = m[mark][i];}
}
// read
void read(){int i, j;while(cin>>n){if(!n) return;for(i=1; i<=n; i++)cin>>c[i];for(i=1; i<=n; i++)for(j=i+1; j<=n; j++){m[i][j] = cmp(i, j); // 保存权值
                m[j][i] = m[i][j];}prim();}
}
int main(int argc, char *argv[])
{read();return 0;
}

Author: visaya fan <visayafan[AT]gmail.com>

Date: 2011-08-24 12:55:48

HTML generated by org-mode 6.33x in emacs 23

转载于:https://www.cnblogs.com/visayafan/archive/2011/09/27/2193619.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303280.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux怎么搜索特定文件夹,linux如何在特定文件夹中查找特定文件

user188095724linuxfind这是我的文件夹结构:/site1/myFolder/otherFolder1/a.gif/site1/myFolder/otherFolder1/b.png/site1/myFolder/otherFolder1/c.php.../site2/myFolder/otherFolder2/d.gif/site2/myFolder/otherFolder2/e.png/site2/myFolder/otherFolder2/f.php.../site…

荐书 | 攻克世纪难题,拒绝领取菲尔兹奖的孤独数学天才的一生

今天小木给大家介绍五本数学科普文&#xff0c;了解了一些数学家研究数学、证明猜想的经历&#xff0c;他们的专研精神简直让小木五体投地&#xff01;这也验证了一句经典名言“念念不忘&#xff0c;必有回响”。希望我们都能把时间奉献给自己喜欢的事情上。下面&#xff0c;让…

C# 搭建自己的NuGet服务器,上传自定义NuGet包

第一步搭建NuGet服务器创建空Web项目安装Nuget服务&#xff0c;目前最新版本2.8.2安装完成&#xff0c;会自动生产服务&#xff0c;出现如下界面发布该网站&#xff0c;并部署至IIS将.nupkg文件发布至网站的Packages目录。在VS中修改NuGet引用路径注意把自定NuGet放在首位&…

在不同的ObjectContext中更新数据

第一个using中获取一些数据 User u; using (var db new Entities()) {u db.Users.First(); } 在using外改变 u.NickName "ABC"; 在第二个using中把改变更新到库 using (var db new Entities()) { …… db.SaveChanges(); } 在网上看了一些使用ApplyPropertyC…

5分钟理解一致性哈希算法

来自&#xff1a;cywosp链接&#xff1a;https://blog.csdn.net/cywosp/article/details/23397179一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希&#xff08;DHT&#xff09;实现算法&#xff0c;设计目标是为了解决因特网中的热点(Hot spot)问题&#xff0c;初衷…

linux 取消证书登录密码,SUSELinux 中为 SSH 访问设置不输入密码的证书认证登录方式...

SSH Client &#xff1a;linux-gxntSSH Server &#xff1a;xxzx-rdb目的&#xff1a; linux-gxnt 上的 nagios 用户以相同的用户(nagios)SSH 登录xxzx-rdb &#xff0c;不用输入密码。1.在 SSH Client 和 Server 上使用 yast 创建 nagios 用户和nagios 组&#xff0c;nagios 用…

Blazor 初探

Blazor 初探目录一、新建项目二、ASP.NET Core Blazor 项目结构三、结合代码讲解四、改造五、配置文件的使用六、发布到 Linux&#xff08;CentOS&#xff09;题外话&#xff0c;期间遇到个问题反向代理七、地址独立观察员 2021 年 4 月 11 日上个月发了篇文章《Blazor 中如何下…

Relaltek声卡在UBUNTU下没有声音的解决方法。

为什么80%的码农都做不了架构师&#xff1f;>>> The computer has an HDA Intel chip (Realtek ALC887) and I couldnt open alsamixer (this error was displayed: "load hw:0 error: Invalid argument"), although the sound seemed to be working in …

.Net项目模板进阶

友情提示&#xff1a;这篇有点长&#xff0c;有点绕&#xff0c;加油&#xff01;上一篇文章&#xff0c;简单的说明了一下.net项目模板的创建&#xff0c;主要是通过在项目文件*.csproj同目录下添加.template.config文件夹和里面的template.json&#xff0c;再用dotnet new -i…

Web Worker 使用教程

一、概述JavaScript 语言采用的是单线程模型&#xff0c;也就是说&#xff0c;所有任务只能在一个线程上完成&#xff0c;一次只能做一件事。前面的任务没做完&#xff0c;后面的任务只能等着。随着电脑计算能力的增强&#xff0c;尤其是多核 CPU 的出现&#xff0c;单线程带来…

bert模型需要什么版本Linux,Bert模型

Bert语言表征预训练。1有上下文——根据整句话生成词表征2无上下文——word2vec 和glove词汇表中每个单词生成单个词嵌入表征&#xff0c;bank、bank deposit、river bank 相同表征Unsupervised(仅使用语料库),深度双向Bert建立在上下文预训练语境表征工作基础上&#xff0c;半…

Hmm

http://blog.sina.com.cn/s/blog_46ed82810100cgwb.html 彻底搞定C指针&#xff0d;const int * pi/int * const pi的区别 http://www.qnr.cn/pc/lin/study/201008/521819.html Linux系统内存监控全面讲解之free命令 http://www.qnr.cn/pc/lin/study/201008/521844.html 具有杀…

NET问答: C# 中是否有最高效的方式对大文件做 checksum ?

咨询区 Dario&#xff1a;我需要在多台机器间同步大文件&#xff0c;不过文件高达 6G&#xff0c;通常我都是每几周手工同步一次&#xff0c;考虑到文件的文件名经常变&#xff0c;为了检验一致性&#xff0c;我考虑使用 checksum 机制。我的计划是在 源机器 和 目标机器 上做 …

linux宝塔类似工具,有没有比宝塔面板更好的linux运维工具?

我是一个站长,现在建站seo是比较重要的部分,买了独立ip的云服务器主机,为了就是能够seo效果好点.建站优化我不担心,最郁闷的就是linux服务器运维这块,宝塔linux面板是必须安装到服务器上,比较消耗服务器内存,运维比较麻烦.还有就是购买宝塔面板的附带插件比较贵,基本买个网站防…

世界上最难的5种编程语言

每个程序员都熟悉许多编程语言。许多编程语言都是高级的&#xff0c;它们的语法是人类可读的。然而&#xff0c;也有一些低级语言&#xff0c;对于一个人来说&#xff0c;读起来很困难&#xff0c;但是可以理解。您是否遇到过一种既不可读又不可理解的编程语言?有一些编程语言…

局域网速度变慢的故障分析

在众多的网络故障中&#xff0c;最令人头痛的是网络是通的&#xff0c;但网速变慢。初次面对这类“软”故障时&#xff0c;往往有的人会束手无策&#xff0c;本文为大家介绍引起此类“软”故障常见的原因及排除方法&#xff0c;提高大家对实际问题的处理能力。★网线问题我们知…

云原生 | .NET 5 with Dapr 初体验

【Dapr】| 总结/Edison Zhou分布式应用运行时Dapr目前已经发布了1.1.0版本&#xff0c;阿里云也在积极地为Dapr贡献代码和落地实践。作为一名开发者&#xff0c;自然也想玩一玩&#xff0c;看看Dapr带来的新“视”界到底是怎么样的。1关于DaprDapr&#xff08;Distributed Appl…

linux中的ip地址范围,linux – ip地址范围参数

从http://linux-ip.net/html/tools-ip-address.html&#xff1a;Scope | Descriptionglobal | valid everywheresite | valid only within this site (IPv6)link | valid only on this devicehost | valid only inside this host (machine)范围通常由ip实用程序确定,无需在命令…

充分利用系统的组策略 保障共享目录安全

在日常的办公应用中&#xff0c;为了使用的方便&#xff0c;我们习惯于将自己电脑上的一些文档、目录共享出来&#xff0c;以便于别人调用。但是对于共享的文件夹常常无法做到在使用后即将其关闭&#xff0c;这样网络上一些别有用心的人则可能对我们的共享文件进行破坏&#xf…

Python资料分享来袭,收下不谢!

近几年&#xff0c;机器学习一直很火&#xff0c;小编也有意识地收集了机器学习相关的资源&#xff0c;经过长时间的积累和沉淀&#xff0c;内容涵盖“Python教程”、“编程指南”、“学习视频”等。现在&#xff0c;小编准备将这些资料免费分享给大家&#xff01;扫描下面二维…