题目名称 1431. 字母游戏(修复后)
输入输出 lgames.in/out
难度等级
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 12
题目来源 Gravatarcstdio 于2013-11-03加入
开放分组 全部用户
提交状态
分类标签
字符串 基本 IOI USACO 模拟
分享题解
通过:2, 提交:6, 通过率:33.33%
Gravatarrewine 100 0.054 s 0.75 MiB C++
Gravatarcstdio 100 0.140 s 0.29 MiB C++
Gravatarrewine 91 0.057 s 0.82 MiB C++
Gravatarxinging 0 0.905 s 1.94 MiB C++
Gravatarxinging 0 0.906 s 1.94 MiB C++
Gravatarxinging 0 0.913 s 1.94 MiB C++
关于 字母游戏(修复后) 的近10条评论(全部评论)

1431. 字母游戏(修复后)

★   输入文件:lgames.in   输出文件:lgames.out   简单对比
时间限制:1 s   内存限制:128 MiB

【题目描述】

USACO/lgame(译by kd)

 

    在家里用电视机做字母游戏是很流行的,其中一种玩法是:每一个字母有一个数值与之对应.你收集字母组成一个或多个词以得到尽可能高的得分.除非你已有了 “找词的方法”(“a way with words”),你会把你知道的字都试一遍.有时你也许会查阅其拼写,然后计算得分。显然可以用计算机更为准确地完成此任务。上图示出了英文字母及其所对应的值,当给出英文单词(word) 的表列及收集的字母时,请找出所能形成的得分最高的词或词对(pairs of words)。

【输入格式】

    输入文件lgames.in中的第一行是由小写字母('a'到'z')组成的字符串, 这就是收集到字母(就是可以使用的字母),字符串由至少3个字母至多7个字母(以任意顺序) 组成。

    接下来的至多40,000行描述了可用词的词典,文件的最后一行有'.' 表示文件的结束。文件中的字已按字母顺序排序。除最后一行外,其它各行每一行都是由至少3个小写字母,至多7 个小写字母组成的字符串。文件中的字已按字母顺序排序。

【输出格式】


在文件lgames.out的第一行,你的程序应写上最高得分(子任务A).使用上面图形中给出的字母-值对应表。

随后的每一行是由文件lgame.dict中查到的具有这个得分的所有的词和或词对(word pairs)(子任务B)。要利用图中给定的字母的值。

当两个词能够形成 一个组合(具有给定的字母)时,这两个词应该打印到同一行,两个词中间用一个空格隔开。不许重复表示词对,例如'rag prom'和'prom rag'是同样的词对,只输出字典顺序较小的那个(prom rag)。

输出要按照字典顺序排序,如果两个词对第一个单词的顺序相同,则按照第二个单词。一个词对中的两个单词可以相同。


【样例输入】

prmgroa

profile

program

prom

rag

ram

rom

.

【样例输出】

24

program

prom rag

提示

注意和USACO原题的不同,本题中词典文件跟在可用字母后面,而非单独的文件。

将单词和词对放在一起排序,即默认单词的“第二个词”是空串.

【来源】

USACO4.3.4,原题见892.字母游戏。

修改了的输入输出格式以适应cogs的环境。