除了 Problem 3, 《建筑抢修》的时限为 2s 之外,所有试题的时限均为 1s

 

Problem 1  合金

标志: metal.*

试题描述:

某公司加工一种由铁、铝、锡组成的合金。他们的工作很简单。首先进口一些铁铝锡合金原材料,不同种类的原材料中铁铝锡的比重不同。然后,将每种原材料取出一定量,经过融解、混合,得到新的合金。新的合金的铁铝锡比重为用户所需要的比重。

现在,用户给出了 n 种他们需要的合金,以及每种合金中铁铝锡的比重。公司希望能够订购最少种类的原材料,并且是用这些原材料可以加工出用户需要的所有种类的合金。

 

输入文件的第一行是两个整数 m n (m, n <= 500) ,分别表示原材料种数和用户需要的合金种数。

2 m+1 行,每行三个实数 a, b, c, (a, b, c >= 0 a+b+c = 1) ,分别表示铁铝锡在一种原材料中所占的比重。

m+2 m+n+1 行,每行三个实数 a, b, c, (a, b, c >= 0 a+b+c = 1) ,分别表示铁铝锡在一种用户需要的合金中所占的比重。

输出一个整数,表示最少需要的原材料种数。若无解,则输出 -1

输入样例:

3 2

0.25 0.25 0.5

0 0.5 0.5

1 0 0

0.7 0.1 0.2

0.85 0.05 0.1

 

输出样例:

2

 

 

 

Problem 2  麻将

标志: mahjong.*

问题描述:

麻将是中国传统的娱乐工具之一。麻将牌的牌可以分为字牌(共有东南西北中发白七种)和序数牌(分为条子饼子万字三种花色,每种花色各有一到九的九种牌),每种牌各四张。在麻将中,通常情况下一组和了的牌(即完成的牌)由十四张牌组成。十四张牌中的两张组成对子(即完全相同的两张牌),剩余的十二张组成三张一组的四组,每一组需为顺子(即同花色且序数相连的序数牌,例如条子三四五),或者是刻字(即完全相同的三张牌)。一组听牌的牌是指一组十三张牌,且再加上某一张牌就可以组成和牌。那一张加上的牌可以成为等待牌。

在这里,我们考虑一种特殊的麻将。在这种特殊的麻将里,没有字牌,花色也只有一种。但是,序数不被限制在一到九的范围内,而是在 1 n 的范围内。同时,也没有每一种牌四张的限制。一组和了的牌由 3m +2 张牌组成,其中两张组成对子,其余 3m 张组成三张一组的 m 组,每组需为顺子或刻字。先给出一组 3m +1 张的牌,要求判断该组牌是否为听牌(即还差一张就可以和牌)。如果是的话,输出所有可能的等待牌。

 

输入文件包含两行。第一行包含两个由空格隔开的整数 n, m (9 <= n <= 400, 4 <= m <= 1000) ,第二行包含 3m +1 个由空格隔开的整数,每隔数均在范围 1 n 内。这些数代表要求判断听牌的牌的序数。

输出为一行。如果该组牌为听牌,则输出所有的可能的等待牌的序数,数字之间用一个空格隔开。所有的序数须按从小到大的顺序输出。如果该组牌不是听牌,则输出 ”NO”.

 

输入样例:

9 4

1 1 2 2 3 3 5 5 5 7 8 8 8

 

输出样例:

6 7 9

 

 

 

Problem 3  建筑抢修

标志: repair.*

问题描述:

小刚在玩 JSOI 提供的一个称之为“建筑抢修”的电脑游戏。

经过了一场激烈的战斗, T 部落消灭了所有 z 部落的入侵者。但是 T 部落的基地里已经有 N 个建筑设施受到了严重的损伤,如果不尽快修复的话,这些建筑设施将会完全毁坏。

现在的情况是: T 部落基地里只有一个修理工人。虽然它能瞬间到达任何一个建筑,但是修复每个建筑都需要一定的时间。同时,修理工人修理完一个建筑才能修理下一个建筑,不能同时修理多个建筑。如果某个建筑在一段时间之内没有完全修理完毕,这个建筑就报废了。

你的任务是帮小刚合理的制定一个修理顺序,以抢修尽可能多的建筑。

 

输入文件第一行是一个整数 N ,接下来 N 行每行两个整数 T1, T2 描述一个建筑:修理这个建筑需要 T1 秒,如果在 T2 秒之内还没有修理完成,这个建筑就报废了。

输出文件只有一行,是一个整数 S ,表示最多可以抢修 S 个建筑。

N < 150,000;  T1 < T2 < maxlongint

 

样例输入:

4

100 200

200 1300

1000 1250

2000 3200

 

样例输出:

3

 

 

 

Problem 4  文本生成器

标志: generator.*

问题描述:

JSOI 交给队员 ZYX 一个任务:编制一个称之为文本生成器的电脑软件。

该软件的使用者是一些低幼人群,他们现在使用的是 GW 文本生成器 V6 版。该软件可以随机生成一些文章——总是生成一篇长度固定且完全随机的文章。也就是说,生成的文章中每个字节都是完全随机的。

如果一篇文章中至少包含使用者们了解的一个单词,那么我们说这篇文章是可读的(我们称文章 a 包含单词 b ,当且仅当单词 b 是文章 a 的子串)。但是,即使按照这样的标准,使用者现在使用的 GW 文本生成器所生成的文章也是几乎完全不可读的。

ZYX 需要指出 GW 文本生成器 v6 生成的所有文本中可读文本的数量,以便能够成功获得 v7 更新版。你能帮助他吗?

 

输入文件第一行包含两个正整数,分别是使用者了解的单词总数 N (N <= 60) GW 文本生成器 v6 生成文本固定长度 M ;以下 N 行,每一行包含一个使用者了解的单词。

这里所有单词及文本的长度不会超过 100 ,并且只可能包含英文大写字母 A..Z.

输出文件只有一行,是一个整数,表示可能的文章总数。只需要知道结果模 10007 的值。

 

样例输入:

2 2

A

B

 

样例输出:

100

 

 

Problem 5  字符加密。

标志: cipher.*

问题描述:

喜欢钻研问题的 JS 同学,最近又迷上了对加密方法的思考。一天,他突然想出了一种他认为是终极的加密办法:把需要加密的信息排成一圈,显然,他们有很多种不同的读法,例如:

JSOI07

SOI07J

OI07JS

I07JSO

07JSOI

7JSOI0

把他们按照字符串的大小排序:

07JSOI

7JSOI0

I07JSO

JSOI07

OI07JS

SOI07J

读出最后一列字符: I0O7SJ ,就是加密后的字符串。

但是,如果想加密的字符串实在太长,你能写一个程序完成这个任务吗?

 

输入文件包含一行,欲加密的字符串。注意字符串的内容不一定是字母,数字,也可以是符号等。

输出文件只有一行,是加密后的字符串。

对于 40% 的数据, N <= 10,000; 对于 100% 的数据, N <= 100,000 ,其中 N 是与加密字符串的长度。

 

样例输入:

JSOI07

 

样例输出:

I0O7SJ

 

 

posted on 2009-03-13 13:29 250 阅读(751) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


<2009年3月>
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

留言簿(6)

随笔分类

随笔档案

文章档案

相册

搜索

  •  

最新评论