博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
英语考试(最小生成树)
阅读量:6441 次
发布时间:2019-06-23

本文共 2253 字,大约阅读时间需要 7 分钟。

Problem 2254 英语考试

Accept: 35    Submit: 72
Time Limit: 1000 mSec    Memory Limit : 32768 KB

Problem Description

在过三个礼拜,YellowStar有一场专业英语考试,因此它必须着手开始复习。

这天,YellowStar准备了n个需要背的单词,每个单词的长度均为m。

YellowSatr准备采用联想记忆法来背诵这n个单词:

1、如果YellowStar凭空背下一个新词T,需要消耗单词长度m的精力

2、如果YellowSatr之前已经背诵了一些单词,它可以选择其中一个单词Si,然后通过联想记忆的方法去背诵新词T,需要消耗的精力为hamming(Si, T) * w。

hamming(Si, T)指的是字符串Si与T的汉明距离,它表示两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。

由于YellowStar还有大量繁重的行政工作,因此它想消耗最少的精力背诵下这n个单词,请问它最少需要消耗多少精力。

Input

 

包含多组测试数据。

第一行为n, m, w。

接下来n个字符串,每个字符串长度为m,每个单词均为小写字母'a'-'z'组成。

 

1≤n≤1000

1≤m, w≤10

Output

输出一个值表示答案。

Sample Input

3 4 2
abch
abcd
efgh

Sample Output

10

Hint

最优方案是:先凭空记下abcd和efgh消耗精力8,在通过abcd联想记忆去背诵abch,汉明距离为1,消耗为1 * w = 2,总消耗为10。

Source

福州大学第十四届程序设计竞赛_重现赛 
 
 
//没想到额,是最小生成树,首先想到的竟然是贪心解决,后来发现这样显然错误,决定哪些直接记住的很关键。
对于每个单词,可以直接记忆,也可以通过任何一个单词联想记忆,所以,想到这,可以想到似乎是个完全图,边的值为min(m,hamming(Si, T)*w)
然后就跑最小生成树
kruskal
1 #include 
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 #define INF 0x3f3f3f3f 8 #define MX 1005 9 struct Node10 {11 int u,v;12 int d;13 bool operator < (const Node &b)const{14 return d>b.d;15 }16 };17 int n,m,w;18 char str[MX][15];19 priority_queue
Q;20 int f[MX];21 22 int find_h(int x){23 if (x!=f[x])24 f[x]=find_h(f[x]);25 return f[x];26 }27 28 void krus()29 {30 for (int i=0;i
View Code

 

prim

1 #include 
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 #define INF 0x3f3f3f3f 8 #define MX 1005 9 struct Node10 {11 int u,v;12 int d;13 bool operator < (const Node &b)const{14 return d>b.d;15 }16 };17 int n,m,w;18 char str[MX][15];19 int G[MX][MX];20 int vis[MX];21 int dis[MX];22 23 void prim()24 {25 memset(vis,0,sizeof(vis));26 vis[0]=1;27 for (int i=0;i
G[dex][i])44 dis[i]=G[dex][i];45 }46 printf("%d\n",sp);47 }48 49 int main()50 {51 while (scanf("%d%d%d",&n,&m,&w)!=EOF)52 {53 for (int i=0;i
View Code

 

转载于:https://www.cnblogs.com/haoabcd2010/p/7190797.html

你可能感兴趣的文章
hdu 2665 划分树
查看>>
laravel中的plicy授权方法:
查看>>
基于R进行相关性分析--转载
查看>>
常用 cdn
查看>>
tomcat8 管理页面403 Access Denied的解决方法
查看>>
怎样避免应用冷启动
查看>>
把vux中的@font-face为base64格式的字体信息解码成可用的字体文件
查看>>
vue sync
查看>>
CentOS6下OpenLDAP+PhpLdapAdmin基本安装及主从/主主高可用模式部署记录
查看>>
Wix 安装部署教程(十一) ---QuickWix
查看>>
Spring @Value注解问题
查看>>
P1886 滑动窗口
查看>>
实施vertex compression所遇到的各种问题和解决办法
查看>>
ubuntu 12.04 rails server 时候报错 execjs
查看>>
linux下文件压缩与解压操作
查看>>
使用树莓派实现微信远程监控
查看>>
在 SQL Server 中查询EXCEL 表中的数据遇到的各种问题
查看>>
linux sed命令
查看>>
浅谈当下网页设计趋势
查看>>
TCP 滑动窗口和 拥塞窗口
查看>>