2003年四川省入营测试
时间:3小时
题目 文件 输入 输出 分值
旅行的精灵 genius.exe genius.in genius.out 50
聪明的阿卑多abido.exe abido.in abido.out 50
题一:旅行的精灵
题意描述:
在密西西比河岸,居住着一群以旅游为生的精灵。
这些精灵总是从自己的森林出发,旅游到另一个森林,一直经过若干个森林后回到出发的森林,再按照相同的顺序在这些森林之间旅游。但是遗憾的是,由于一路上有太多的危险,他们不得不隐身,这样的话就连它的同类也不可能发现它了。但是到了森林后,他们全都解除隐身,因为它们的森林是安全的。这时,如果两个精灵相遇,它们便互相讲述着它们自己的以及它们从其它精灵那里听到的故事。
每个精灵在出发前都有一个关于它自己(家族)的独特的故事。并且它们从一个森林到另一个森林的时间总是1年。
那个最小的精灵JYY,是第一次参与这样的旅行。它想了解的是,至少要到多少年之后,它才可以知道关于所有精灵的故事。
输入:
第一行为一个数n,表示精灵的个数。(1<n<=30)
接下来n行,每行有若干个数。第一个数为它出发的森林编号,接下来的数为它顺次旅游的森林编号(它经过最后一个森林后又回到出发的森林,再按这样的顺序旅行)。森林编号从1开始,不超过1000。
第一个精灵是JYY。
输出:
一个数,为JYY能知道所有精灵故事的最短年数。如果这个年数超过了100000,或JYY永远不可能知道所有的故事,那么都请输出100000。
样例:
genius.in genius.out
3
1 5 2
3 6 4
6 2 5
题二:聪明的阿卑多
题意描述:
也许你从没听说过阿卑多,但你一定知道他爷爷的爷爷的爷爷,那就是聪明绝顶的阿凡提先生。是的,阿卑多也是个聪明的小孩。
一天,阿卑多骑着他的小毛驴,在小镇上晃悠,正好遇上了小巴依——那个自以为是的小财主。小巴依正在炫耀他的金币:
“你们见过这样的金币么?这可不是一般的金币,你看它们多大多重啊!最主要的是,它们每个上面都刻有我的名字和一个编号,是独一无二的!看看,从我出生开始,每2个月,爸爸便给我1个特做的大金币,并从1开始编号,现在我已经有60枚了,哈哈……”
小巴依见了阿卑多,于是便想考一考他:“阿卑多,听说你是最聪明的。看见我每个金币上的数字了吗?你现在拿取一半的金币,并能用你拿的若干金币上的数的和表示我的任意一枚金币上的数。如果你能办到,那么就奖你一枚金币;如果不能,就给我做三年长工好了。”
阿卑多想了一想,说:“我可以只拿1/10就办到,不过如果我办到了,你就得分一半金币给我。”
1/10?小巴依心想,你准备给我当长工好了。
于是阿卑多开始取金币……
自然,阿卑多出色的完成了任务,得到了30枚金币,同样的,他把这些金币都分给了穷人们。
给你的任务就不同了。
输入:
一个数n(1<=n<=1000) 表示金币枚数(金币上的数分别为1到n)
输出:
两个数,阿卑多最少要拿的金币数以及不同的方案数。
样例:
Abido.in Abido.out
6
3 2
(2种拿法:拿取编号为1、2、3的金币;或拿取编号为1、2、4的金币)