POJ 1789 Truck History
来源:互联网 发布:淘宝客网站是什么 编辑:程序博客网 时间:2024/06/10 03:10
题意:求出从这若干序列中选出一个生成其他序列,所需变化花费最小的序列
链接:http://poj.org/problem?id=1789
思路:根据公式可知,要求的d的和就是生成最小树的权值,建图时注意将每一个序列作为一个节点,两个节点之间的权值为需要变化字母的个数
注意点:无
以下为AC代码:
Run IDUserProblemResultMemoryTimeLanguageCode LengthSubmit Time14176748luminous111789Accepted16476K547MSG++1847B2015-05-09 09:28:34/* ************************************************# @Author : Luminous11 (573728051@qq.com)*# @Date : 2015-04-20 18:38:59*# @Link : http://blog.csdn.net/luminous11 *********************************************** */#include<cstdio>#include<iostream>#include<string>#include<cstring>#define clr(a, v) memset( a , v , sizeof(a) )using namespace std;const double eps = 1e-10;//const double pi = acos(-1.0);int g[2005][2005];char str[2005][10];int prim ( int n ){ int ans = 0; int dis[2005]; int vis[2005] = { 0 }; for ( int i = 0; i < n; i ++ ){ dis[i] = g[0][i]; } for ( int k = 0; k < n; k ++ ){ int _min = 0x3f3f3f3f; int p = -1; for ( int i = 0; i < n; i ++ ){ if ( ! vis[i] && _min > dis[i] ){ _min = dis[i]; p = i; } } if ( p == -1 )return -1; vis[p] = 1; ans += dis[p]; for ( int i = 0; i < n; i ++ ){ if ( ! vis[i] && dis[i] > g[p][i] ){ dis[i] = g[p][i]; } } } return ans;}int main(){ int n; while ( cin >> n && n ){ clr ( g, 0 ); for ( int i = 0; i < n; i ++ ){ scanf ( "%s", str[i] ); } for ( int i = 0; i < n; i ++ ){ for ( int j = i; j < n; j ++ ){ int len = 0; for ( int k = 0; k < 7; k ++ ){ if ( str[i][k] != str[j][k] ){ len ++; } } g[i][j] = g[j][i] = len; } } int ans = prim( n ); cout << "The highest possible quality is 1/" << ans << "." << endl; } return 0;}
0 0
- POJ 1789 Truck History
- POJ 1789 Truck History
- POJ 1789 Truck History
- poj 1789 Truck History
- poj 1789 Truck History
- Poj 1789 Truck History
- poj 1789 Truck History
- poj 1789 Truck History
- poj 1789 Truck History
- poj 1789 Truck History
- POJ-1789-Truck History
- poj-1789-Truck History
- POJ 1789 Truck History
- poj 1789 Truck History
- POJ 1789 Truck History
- POJ 1789 Truck History
- POJ 1789 Truck History
- POJ 1789 Truck History
- 关于范式的一些笔记
- 正则表达式?的用法
- Android LayoutInflater原理分析
- Struts2入门篇-- 用户登录
- 自定义异常
- POJ 1789 Truck History
- 火车进出站序列问题简述
- git 使用
- exe4j的使用
- list用法及其常见错误
- 组合模式-系统由可以被统一处理的对象组成,对象可以单一或者复合
- JSONObject与JSONArray的使用
- [leetcode] 52.N-Queens II
- 批处理之合并多个Excel表