poj 1789 Truck History 解题报告
题目链接:http://poj.org/problem?id=1789
题目意思:给出 N 行,每行7个字符你,统计所有的 行 与 行 之间的差值(就是相同位置下字母不相同),一个位置不相同就为1,依次累加。问最终的差值最少是多少。
额.....题意我是没看懂啦= =......看懂之后,就转化为最小生成树来做了。这是一个完全图,即每条边与除它之外的所有边都连通。边与边的权值是通过这个差值来算出来的。
- #include <iostream>
- #include <cstdio>
- using namespace std;
- const int maxn = + ;
- const int INF = 1e9;
- int truck[maxn][maxn];
- int dist[maxn], vis[maxn];
- char input[maxn][maxn];
- int ans, N;
- void prim()
- {
- int k;
- for (int i = ; i <= N; i++)
- {
- vis[i] = ;
- dist[i] = INF;
- }
- dist[] = ;
- for (int i = ; i <= N; i++)
- {
- int tmp = INF;
- for (int j = ; j <= N; j++)
- {
- if (!vis[j] && dist[j] < tmp)
- {
- tmp = dist[j];
- k = j;
- }
- }
- vis[k] = ;
- ans += tmp;
- for (int j = ; j <= N; j++)
- {
- if (!vis[j] && dist[j] > truck[k][j])
- dist[j] = truck[k][j];
- }
- }
- }
- int main()
- {
- while (scanf("%d", &N) != EOF && N)
- {
- for (int i = ; i <= N; i++)
- scanf("%s", &input[i]);
- int cnt;
- for (int i = ; i < N; i++)
- {
- for (int j = i+; j <= N; j++)
- {
- cnt = ;
- for (int k = ; k < ; k++)
- {
- if (input[i][k] != input[j][k])
- cnt++;
- }
- truck[i][j] = truck[j][i] = cnt;
- }
- }
- ans = ;
- prim();
- printf("The highest possible quality is 1/%d.\n", ans);
- }
- return ;
- }
poj 1789 Truck History 解题报告的更多相关文章
- Kuskal/Prim POJ 1789 Truck History
题目传送门 题意:给出n个长度为7的字符串,一个字符串到另一个的距离为不同的字符数,问所有连通的最小代价是多少 分析:Kuskal/Prim: 先用并查集做,简单好写,然而效率并不高,稠密图应该用Pr ...
- POJ 1789 -- Truck History(Prim)
POJ 1789 -- Truck History Prim求分母的最小.即求最小生成树 #include<iostream> #include<cstring> #incl ...
- poj 1789 Truck History
题目连接 http://poj.org/problem?id=1789 Truck History Description Advanced Cargo Movement, Ltd. uses tru ...
- POJ 1789 Truck History【最小生成树简单应用】
链接: http://poj.org/problem?id=1789 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22010#probl ...
- POJ 1789 Truck History (Kruskal)
题目链接:POJ 1789 Description Advanced Cargo Movement, Ltd. uses trucks of different types. Some trucks ...
- poj 1789 Truck History 最小生成树
点击打开链接 Truck History Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 15235 Accepted: ...
- POJ 1789 Truck History (最小生成树)
Truck History 题目链接: http://acm.hust.edu.cn/vjudge/contest/124434#problem/E Description Advanced Carg ...
- poj 1789 Truck History【最小生成树prime】
Truck History Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 21518 Accepted: 8367 De ...
- poj 1789 Truck History 最小生成树 prim 难度:0
Truck History Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 19122 Accepted: 7366 De ...
随机推荐
- Java远程调用BPS流程实现流程运行简单示例
1.简介:略 2.背景:略 3.目的:自我学习笔记 4.实现过程 (1).画出流程图 如下: 路由活动分支下的条件语句为复杂表达式: ((account<200&&divisio ...
- Phantomjs和Casperjs,后台网页抓取和交互
var casper = require('casper').create({ verbose: true, logLevel: 'debug', pageSettings: { loadImages ...
- android中bitmap图片与二进制,String间的转化
1, public Bitmap stringtoBitmap(String string) { // 将字符串转换成Bitmap类型 ...
- android apk程序升级
1 .设置apk版本号 Androidmanifest.xml <manifest xmlns:android="http://schemas.android.com/apk/res/ ...
- openSUSE Leap 15.0 初始配置
添加源: # 禁用原有软件源 sudo zypper mr -da # 添加阿里镜像源 sudo zypper ar -fc https://mirrors.aliyun.com/opensuse/d ...
- noip2013华容道
题目描述 [问题描述] 小 B 最近迷上了华容道,可是他总是要花很长的时间才能完成一次.于是,他想到用编程来完成华容道:给定一种局面, 华容道是否根本就无法完成,如果能完成, 最少需要多少时间. 小 ...
- 【Java TCP/IP Socket】基于NIO的TCP通信(含代码)
NIO主要原理及使用 NIO采取通道(Channel)和缓冲区(Buffer)来传输和保存数据,它是非阻塞式的I/O,即在等待连接.读写数据(这些都是在一线程以客户端的程序中会阻塞线程的操作)的时候, ...
- 打印报表以显示具有给定责任的用户-FNDSCRUR责任用户
select --&p_hint distinct user_name, decode ( greatest (u.sta ...
- js -- 监听窗口的大小变化
- String、StringBuffer和StringBuilder的差别
String.StringBuffer和StringBuilder的差别 1.String类是不可变类,即一旦一个String对象被创建后.包括这个对象中的字符序列是不可改变的 2.在字符串拼接的过程 ...