POJ1789Truck History
题意 : 说实话,题意我没看懂,后来让人给我讲的样例。。。。。
4
aaaaaaa
baaaaaa
abaaaaa
aabaaaa
0
这个样例的话,就是输入n下面n行,每行7个字母,让你依次选两行进行比较,不同的有多少个,所以题目中给的样例,1,2行一个不同的,1,3行一个不同的,1,4行一个不同的,所以距离是3,2,3行两个不同的,2,1行一个不同的,2,4行两个不同的,距离是4,这样找下去,可以构成一个无向图,找最小生成树。
解题思路 : 其实就是一个转化问题,将给的字符串转化成距离的二维数组再找最小生成树即可
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int inf = << ;
const int maxn = ;
int vis[maxn];
int low[maxn];
int dis[maxn][maxn];
char ch[maxn][maxn];
int i,j,k,n;
int sum ;
int prim()
{
int ans = , i, j, flag=, min;
memset(vis,,sizeof(vis));
for(i = ; i <= n; i++)
{
low[i] = dis[][i];
}
//low[1]=0;
//vis[1] = 1;
for(i = ; i <= n; i++)
{
min = inf;
flag = ;
for(j = ; j <= n; j++)
{
if(min > low[j] && !vis[j])
{
min = low[j];
flag = j;
}
}
ans += min;
vis[flag] = ;
for(j = ; j <= n; j++)
{
if(dis[flag][j] < low[j] && !vis[j])
{
low[j] = dis[flag][j];
}
}
}
return ans;
}
int main()
{
while(cin>>n&&n)
{
for(i = ; i <= n ; i++)
cin>>ch[i] ;
for(i = ; i <= n ; i++)
{
for(j = ; j <= n ; j++)
{
sum = ;
for(k = ; k < ; k++)
{
if(ch[i][k] != ch[j][k])
sum++;
}
dis[i][j] = dis[j][i] = sum;
}
}
cout<<"The highest possible quality is 1/"<<prim()<<"."<<endl;
}
return ;
}
POJ1789Truck History的更多相关文章
- poj--1789--Truck History(prim)
Truck History Time Limit: 2000MS Memory Limit: 65536KB 64bit IO Format: %I64d & %I64u Submit ...
- History API与浏览器历史堆栈管理
移动端开发在某些场景中有着特殊需求,如为了提高用户体验和加快响应速度,常常在部分工程采用SPA架构.传统的单页应用基于url的hash值进行路由,这种实现不存在兼容性问题,但是缺点也有--针对不支持o ...
- 使用backbone的history管理SPA应用的url
本文介绍如何使用backbone的history模块实现SPA应用里面的URL管理.SPA应用的核心在于使用无刷新的方式更改url,从而引发页面内容的改变.从实现上来看,url的管理和页面内容的管理是 ...
- 使用h5的history改善ajax列表请求体验
信息比较丰富的网站通常会以分页显示,在点“下一页”时,很多网站都采用了动态请求的方式,避免页面刷新.虽然大家都是ajax,但是从一些小的细节还是 可以区分优劣.一个小的细节是能否支持浏览器“后退”和“ ...
- HTML5学习笔记之History API
这系列文章主要是学习Html5相关的知识点,以学习API知识点为入口,由浅入深的引入实例,让大家一步一步的体会"h5"能够做什么,以及在实际项目中如何去合理的运用达到使用自如,完美 ...
- Linux下history命令用法
如果你经常使用 Linux 命令行,那么使用 history(历史)命令可以有效地提升你的效率.本文将通过实例的方式向你介绍 history 命令的 15 个用法. 使用 HISTTIMEFORMAT ...
- safari 浏览器window.history.go(-1)运行无效解决办法
这几天做了几个手机端app的wap页面,做完之后发现一个问题,那就是ios系统下的safari浏览器不支持window.history.go(-1)..无语... 解决方法很简单!加上return f ...
- History lives on in this distinguished Polish city II 2017/1/5
原文 Some fresh air After your time underground,you can return to ground level or maybe even a little ...
- History lives on in this distinguished Polish city 2017/1/4
原文 History lives on in this distinguished Polish city Though it may be ancient. KraKow, Poland, is a ...
随机推荐
- IAR产生可烧录的镜像文件
Technorati 标签: IAR 烧录镜像 在IAR中,产生能够使用烧录器烧写的hex文件的方法: 1. 只生成可烧写的hex文件: 1.1 在Project Option中的Link ...
- IPv6协议介绍
IPv6是为了解决基于IPv4的TCP/IP协议簇遇到的问题而推出的下一代IP协议.由于IPv4中采用的编制方式使得可用的网络地址和主机地址的数目远低于理论数目,随着全球互联网的快速发展,现有的IPv ...
- xmlspy注册后打开报错的解决办法
XMLSpy 2011中文版破解补丁使用方法 1.如果你下载的版本是r2sp1的话(r2不用此步骤),先用补丁主程序(altova.xmlspy.v2011r2sp1b-patch.exe).2.XM ...
- Linux中profile与bashrc的作用
文章同步发表在博主网站朗度云,传输门:http://www.wolfbe.com/detail/201608/278.html 在Linux系统上,我们会看到类似于profile和bashrc的文件, ...
- Sql 执行删除修改之前添加备份
backyw备份滴数据库名称,w20151124sendmaster 表名称 select * into backyw..w20151124sendmaster from Logistics.E ...
- wordpress修改固定链接及修改链接后链接提示404错误的解决办法
wordpress默认的url实在是不好看又不好记忆,而且还不利于SEO.因此,我就捣鼓着把url做一个自定义.自定义的方式如下: 建议使用/%postname%的形式,这样利于SEO. 修改之后,l ...
- Android Material Design:ViewPager与android.support.design.widget.TabLayout双向交互联动切换
通常,android.support.design.widget.TabLayout与Android的ViewPager联合使用,实现与ViewPager的切换与联动.(1)比如,当用户手指触摸选择T ...
- 说Win7激活
今天晚上给电脑来了个强制关机,后来打开后提示我,该Windos不是正版,顿时无语.诺,看下图:我的桌面也全部变成黑色了…… 后来一想……哦,应该是我的安装光盘里的激活工具激活的不彻底,或者说只是给我激 ...
- 含有自增序列的表中使用truncate与delete的不同结果
一个含有自增序列的表,使用delete跟truncate之后会有什么不同结果呢? 大概说一下,使用truncate,表中的记录全部被清除,如果向表中插入数据,那么数据的排序是从1开始的. 如果使用的是 ...
- 未能加载文件或程序集“Report.Basic”或它的某一个依赖项。试图加载格式不正确的程序
出现问题如下: 解决办法: 这是由于没有开启32位程序兼容模式 具体操作如下:找到对应的程序池--------高级设置-------修改“启用32位应用程序”状态修改为true