FZU 2254 英语考试 (最小生成树)

在过三个礼拜,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。

明明昨天刚学了生成树,结果今天做就没想到建图,真的蒟蒻。

因为要覆盖全部单词,那么可以想到生成树,那什么可以作为两个结点单词的链接呢,肯定是花费了,而且需要最小,那就是最小生成树了。

嗯这个先遍历一遍 ,把两两单词之间的花费求出来,以此为路径长度,这样求个最小生成树,最后加上一个结点的值即m就好。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 using namespace std;
 5
 6 char word[1002][11];
 7
 8 struct Node
 9 {
10     int x,y,w;
11 }node[500005];
12 int p[1002];
13 int finds(int x)
14 {
15     return p[x] == x?x:p[x] = finds(p[x]);
16 }
17 bool cmp(Node a,Node b)
18 {
19         return a.w<b.w;
20 }
21 int main()
22 {
23     int n,m,w;
24     while(~scanf("%d%d%d",&n,&m,&w))
25     {
26         int tot = 0;
27         for(int i=0;i<n;i++)
28         {
29             scanf("%s",word[i]);
30         }
31
32         for(int i=0;i<n-1;i++)
33         {
34             for(int j=i+1;j<n;j++)
35             {
36                 int num = 0;
37                 for(int k=0;k<m;k++)
38                 {
39                     if(word[i][k] != word[j][k])
40                     {
41                             num++;
42                     }
43                 }
44                 node[tot].x = i;
45                 node[tot].y = j;
46                 node[tot++].w = num*w < m?num*w:m;
47             }
48         }
49         sort(node,node+tot,cmp);
50         int ans = 0;
51         for(int i=0;i<n;i++)p[i]=i;
52         for(int i=0;i<tot;i++)
53         {
54             int x = finds(node[i].x);
55             int y = finds(node[i].y);
56             if(x != y)
57             {
58                 ans += node[i].w;
59                 p[x] = y;
60             }
61         }
62         printf("%d\n",ans+m);
63     }
64 }

原文地址:https://www.cnblogs.com/iwannabe/p/9119599.html

时间: 2024-10-03 22:29:22

FZU 2254 英语考试 (最小生成树)的相关文章

FOJ Problem 2254 英语考试

                                                                                                                                                                                    Problem 2254 英语考试 Accept: 36    Submit: 73Time Limit: 1000 mSec    Mem

[FZU2254]英语考试

在过三个礼拜,YellowStar有一场专业英语考试,因此它必须着手开始复习. 这天,YellowStar准备了n个需要背的单词,每个单词的长度均为m. YellowStar准备采用联想记忆法来背诵这n个单词: 1.如果YellowStar凭空背下一个新词T,需要消耗单词长度m的精力 2.如果YellowSatr之前已经背诵了一些单词,它可以选择其中一个单词Si,然后通过联想记忆的方法去背诵新词T,需要消耗的精力为hamming(Si, T) * w. hamming(Si, T)指的是字符串S

mysql练习题-查询同时参加计算机和英语考试的学生的信息-遁地龙卷风

(-1)写在前面 文章参考http://blog.sina.com.cn/willcaty. 针对其中的一道练习题想出两种其他的答案,希望网友给出更多回答. (0) 基础数据 student表 +-----+--------+------+-------+------------+--------------+ | id  | name   | sex  | birth | department | address      | +-----+--------+------+-------+--

高二年纪上册阶段性英语考试试卷

11. Tom received an invitation todinner, and with his work ____, he gladly accepted it. A. finished     B. finishing      C. having finished   D. was finished 12. The Internet is widely used,which ____ the development of English. A. speeds up   B. ta

初探武警学院——记学位英语考试

来到廊坊快四年了,我也算是玩过了廊坊市各个景点和学校.像大学城,自然公园, 文化 艺术中心 , 人民公园 ,九天休闲谷等等--但是,真的没有去过武警学院.据说,里面有很多帅帅的兵哥哥-- 在周日,我们的河北大学学位英语考试,就是在武警学院考.第一次进如此庄重的地方,有点小开心.说说这个考试吧,这个比较重要,嘿嘿-- 学位英语考试,在考试的前一周多,我开始了准备阶段.因为这个考试,相对来说比较简单,而且在这个考试的前一周,我还有自学考试要参加,所以,英语考试准备时间并不是很多. 在这一周的准备时间

【完型填空题-真题及答案】-2017年11月北京学位英语考试

Part IV Cloze(10%) Direction:There are 20 blanks in the following passage, and for each blank there are 4 choices marked A, B, C, D at the end of the pasage. You should choose ONE answer that that best fits into the passage. Then blacken the correspo

BEC和托业的区别 公共英语等级考试

I.考试简介 考试简介 BEC剑桥商务英语证书考试 TOEIC托业考试 研发机构 剑桥大学外语考试中心ESOL,研发过雅思考试 美国教育考试服务中心ETS,研发过托福考试 进入中国 1993年进入中国 2002年进入中国 享有盛誉 外企通行证 全球最大商务和职业英语考试 •进入沪江BEC分站>>   •进入沪江托业分站>>   •进入BEC中国20周年专题>> II.考试难度 说明:从本质上来说,BEC和托业考试与四六级.专四专八和托福雅思都不具有比较性.但是为了方便大

大学生英语四六级考试应该注意什么

一.关于单词 我是在要考六级的前一个星期开始拼命地做真题的.每天完成2套. 试卷上所有的生词都被我抄下在一个本子上,注明基本意思(所以要买一份有详细译文的六级试卷,对着试卷翻译就可以了,否则查单词都要查到吐血,我用的是星火英语黑旋风真题系列的,我觉得还可以. 其他的没用过,暂时不评价). 这样算下来,我每天大概要记试卷上的生词大概是100—150个. 有同学会有疑问了,这样是不是太多了.不不不,因为我不会去记单词的拼写的,因为四六级没有单词听写,会写有什么用,看得懂就行啦. 因为只记单词的在六级

比&quot;考试&quot;难的&quot;考试&quot;

打上学以后,就开始面对各种各样的考试. "考试",对于我来说,挺难的,考试整体下来就这么一个流程,考前准备,考试中奋笔疾书,考试完心情好几天或者郁闷几天.考试匆匆结束,结束了的结果就是过了或者挂了. 但是这种为人家准备"考试"的工作,还是第一次实践.这几天参与考试系统维护,不仅是目睹整个过程,更是真真切切的参与了,这种心情,只有参与的人才明白其中的喜怒哀乐. 考前:考试系统,大家都不是很了解,我们算是使用它的"顾客"吧,这之中的感受,想必只有我们