POJ 1789 -- Truck History(Prim)
POJ 1789 -- Truck History
Prim求分母的最小。即求最小生成树
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn = + ;
const int INF = ;
int n;//有几个卡车
char str[maxn][];
int d[maxn];//记录编号的数值
int Edge[maxn][maxn];
int dist[maxn];
void prim()
{
int sum=;
//加入源点
dist[] = -;
for(int i=;i<n;i++)
{
dist[i] = Edge[][i];
} for(int i=;i<n;i++)//依次加入n-1条边
{
int min = INF,pos;
for(int j=;j<n;j++)//找出最小的一条
{
if(min>dist[j] && dist[j]!=-)
{
min = dist[j];pos = j;
}
}
//将pos加入
dist[pos] = -;sum+=min;
//进行路径的更新
for(int k=;k<n;k++)
{
if(dist[k] > Edge[pos][k])
dist[k]=Edge[pos][k];
}
}
cout<<"The highest possible quality is 1/"<<sum<<"."<<endl;
} int main()
{
while(cin>>n && n)
{
for(int i=;i<n;i++)
{
cin>>str[i];
}
for(int i=;i<n;i++)
{
int num=;
for(int k=;k<;k++)
num += (int)(str[i][k] - 'a');
d[i] = num;
}
memset(Edge,,sizeof(Edge));
for(int i=;i<n;i++)
{
for(int j=i+;j<n;j++)
{
int temp = ;
for(int k=;k<;k++)
{
temp += str[i][k]!=str[j][k];
}
Edge[i][j] = Edge[j][i] = temp;
}
}
memset(dist,INF,sizeof(dist));
prim(); } return ;
}

POJ 1789 -- Truck History(Prim)的更多相关文章
- POJ 1789 Truck History (最小生成树)
Truck History 题目链接: http://acm.hust.edu.cn/vjudge/contest/124434#problem/E Description Advanced Carg ...
- POJ 1789 Truck History(Prim+邻接矩阵)
( ̄▽ ̄)" #include<iostream> #include<cstdio> #include<cstring> #include<algo ...
- poj 1789 Truck History(最小生成树)
模板题 题目:http://poj.org/problem?id=1789 题意:有n个型号,每个型号有7个字母代表其型号,每个型号之间的差异是他们字符串中对应字母不同的个数d[ta,tb]代表a,b ...
- poj 1789 Truck History 最小生成树 prim 难度:0
Truck History Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 19122 Accepted: 7366 De ...
- poj 1789 Truck History(kruskal算法)
主题链接:http://poj.org/problem?id=1789 思维:一个一个点,每两行之间不懂得字符个数就看做是权值.然后用kruskal算法计算出最小生成树 我写了两个代码一个是用优先队列 ...
- Kuskal/Prim POJ 1789 Truck History
题目传送门 题意:给出n个长度为7的字符串,一个字符串到另一个的距离为不同的字符数,问所有连通的最小代价是多少 分析:Kuskal/Prim: 先用并查集做,简单好写,然而效率并不高,稠密图应该用Pr ...
- POJ 1789:Truck History(prim&&最小生成树)
id=1789">Truck History Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 17610 ...
- poj 1789 Truck History
题目连接 http://poj.org/problem?id=1789 Truck History Description Advanced Cargo Movement, Ltd. uses tru ...
- POJ 1251 Jungle Roads (prim)
D - Jungle Roads Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Su ...
随机推荐
- C++ STL 之 list
#include <list> #include <iostream> using namespace std; // 打印list元素 void PrintList(list ...
- 用最简单的代码写出banner图轮播效果
以下视频是由[赵一鸣随笔]博客提供的“用最简单的代码写出banner图轮播效果”. 查看全屏高清视频,请点击链接:http://www.zymseo.com/58.html
- 【Git】三、版本回退&撤消修改&文件删除
提要 //查看git操作日志 $ git log //单行格式查看操作日志 $ git log --pretty=oneline //还原操作到上一次版本,有几个^就上几次 $ git reset - ...
- redis系列一: windows下安装redis
一. 下载Redis Redis 支持 32 位和 64 位.这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 red ...
- linecache:高效的读取文本文件
介绍 可以很方便的读取文件 读取特定行 import linecache ''' 我们常用的序列的索引是从0开始的,但是linecache模块读取的文件行号是从1开始的 ''' # 表示读取C:\p ...
- Ubuntu在命令行安装显卡驱动
Ubuntu在命令行安装显卡驱动 1.进入电脑的BIOS,把Security Boot设置为Disabled. 2.进入终端,输入一以下命令(这里以安装NVIDIA-390进行演示) sudo add ...
- mybatis详解(三)
一,动态sql,where,trim,set和foreach parameterType的属性可以不用写 xml文件sql的书写 <select id="queryByParams&q ...
- pip报错以及指向错误
在终端中输入无论是pip3 -V或是pip -V都指向python3 如下图所示: 然后在卸载或更新pip 时都出现了报错: 就是卸载也卸不了更新也更不了 解决报错: Traceback (most ...
- C语言之const
鱼鹰 鱼鹰谈单片机 2月19日 预计阅读时间: 5 分钟 我们知道,数据分为两种,一种为只读,一种为可读可写,为了防止一些不变的数据被程序意外的修改,有必要对它进行保护.这就是 const 的作用. ...
- crontab踩坑(一)
因为 我们用conda托管了python虚拟环境,我自身的环境是wqbin,本来crontab脚本的命令是如下: 发生了如下的报错: 因为这里的环境是启动的是base的 所以找不相应的模块.于是我在执 ...