CSD程序设计题目

555, 和lijun设计了二天的题目, 居然不小心发给他们后连答案都被泄露了出来, 只好重出... 嗯, 下面是上次的, 现在没用了, 只好放在这上面放放喽!

1. Fibonacci数列

1201年,意大利数学家Fibonacci发现了以他自己的名字命名的数列--- Fibonacci数列。他是在研究兔子的生长、繁殖的规律中发现这一数列的。他用Fn代表n个月后兔子的对数。因为从一对新生的兔子开始,所以,F0=1 F1=1,而后,由Fn=Fn-2+Fn-1递推得到接下来的每一项。现给你任一整数n(1<n<2^31),试判数该数是不是Fibonacci数列中的一项,如是,并给出是其中的第几项.

样例输入:

10

3

4

5

样例输出:

No

Yes 3

No

Yes 4

2. 折纸痕

你喜欢折纸吗?给你一张很大的纸,对折以后再对折,再对折......每次对折都是从右往左折,因此在折了很多次以后,原先的一个大纸会变成一个窄窄的纸条.现在把这个纸条沿着折纸的痕迹打开,每次都只打开"一半",即把每个痕迹做成一个直角,那么从纸的一端沿着和纸面平行的方向看过去,会看到一个美妙的曲线.例如,如果你对折了4次,那么打开以后你将看到如下图1所示的曲线.注意,该曲线是不自交的,虽然有两个转折点重合。给出对折的次数,请编程绘出打开后生成的曲线。

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 120pt; HEIGHT: 72.75pt" alt="picture23" type="#_x0000_t75"><imagedata o:href="mhtml:file://C:\Documents%20and%20Settings\pipoxu\桌面\程序设计竞赛出题\177%20%20Paper%20Folding\177.mht!http://acm.uva.es/p/v1/177img1.gif" src="file:///C:%5CDOCUME~1%5Cpipoxu%5CLOCALS~1%5CTemp%5Cmsohtml1%5C02%5Cclip_image001.gif"></imagedata></shape>

图1 对折4次后形成的曲线

样例输入:

2

4

1

样例输出:

3. 树重建

给出一棵标号树的BFS(广度优先遍历)序列和DFS(深度优先遍历)序列,设计一个程序重新建立这棵树(结点数n<=1000).当某结点被扩展时,它的所有孩子应该按照编号从小到大的顺序访问.例如一棵树的BFS序列为4 3 5 1 2 8 7 6DFS序列为4 3 1 7 2 6 5 8,则一棵满足条件的树如下图2所示:

<shape id="_x0000_i1026" style="WIDTH: 255pt; HEIGHT: 209.25pt" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5Cpipoxu%5CLOCALS~1%5CTemp%5Cmsohtml1%5C02%5Cclip_image002.gif" o:title="未命名"></imagedata></shape>

图2 一棵满足条件的树

4. 对对碰游戏

<shape id="_x0000_s1026" style="MARGIN-TOP: 21.6pt; Z-INDEX: 1; LEFT: 0px; MARGIN-LEFT: 237.6pt; WIDTH: 180pt; POSITION: absolute; HEIGHT: 135pt; TEXT-ALIGN: left" alt="" type="#_x0000_t75"><imagedata o:href="mhtml:file://C:\Documents%20and%20Settings\pipoxu\桌面\程序设计竞赛出题\2131%20bejewlled\Problem%202131%20bejewlled.mht!http://acm.zju.edu.cn/showimg.php?pid=2131&amp;file=2131.jpg" src="file:///C:%5CDOCUME~1%5Cpipoxu%5CLOCALS~1%5CTemp%5Cmsohtml1%5C02%5Cclip_image003.jpg"></imagedata><wrap type="square"></wrap></shape>对对碰游戏(又有叫夺宝奇兵)相信大家很多人都玩过吧.在这个游戏中,有64个不同的宝石分布 在一个8*8的棋盘里,每一个回合,你能够交换一次任意二个相邻的宝石得到一个新的状态,这时,只要有三个或三个以上相同的宝石连成一横或者一竖,那么这几个宝石即会消去,同时上面的宝石随即下落填充该空间。现在,你的任务就是,分析一个给定的棋局状态,交换一次宝石,然后告诉我有最多能有多少个宝石能够被消去.

假设给定的棋局当中没有出现马上能够消去的情况.棋局的输入包括8行,每行含有8个大写字母,不同的字母表示不同种类的宝石.如以下两例输入:

输出结果分别为:

6

6

5. 超长数字串

给您一个数字串S: 12345678910111213141516171819202122…它是由所有自然数从小到大依次排列起来的。现任意给一个数字串S1(S1的长度不超过200个数字),容易知道它在S串中一定出现无穷多次.试编程求出它第一次出现的位置.如对于串”<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="81" unitname="”">81”</chmetcnv>,它最先出现在位置27。如”<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="101" unitname="”">101”</chmetcnv>,其最先出现的位置为10

输入样例为:

81

101

输出样例为:

27

10

6. 数学家们的游戏

传说生活在XVIII世纪的数学家们喜欢玩下面这个游戏。这个游戏由三个数学家玩。其中一人是游戏庄家。首先,游戏庄家说出某个正整数N。然后他选择两个不同的整数XY,范围从1N并且告诉一个游戏者它们的和,告诉另外一个游戏者它们的乘积。每个游戏者都知道他说的是所选数的和还是乘积。此后游戏者轮流告知庄家他们是否知道他所选的数。首先,被告知数之和的游戏者说出他是否知道那些数,然后被知乘积的游戏者说,等等

如下对话:

庄家:“设N10。”

此后他选择两个范围从110的数,并且告诉游戏者S它们的和,告诉游戏者P它们的乘积。

游戏者S:“我不知道这两个数。”

游戏者P:“我不知道这两个数。”

游戏者S:“我不知道这两个数。”

游戏者P:“我不知道这两个数。”

游戏者S:“噢,现在我知道了,你选了36。”

输入给予数N M ,分别为数的范围和游戏者说“我不知道这两个数”的次数,请你找出游戏庄家选出的所有可能的数的配对。输出第一行为所有可能的配对数,接下来以任意的次序输出这些配对数。

样例输入

10 4

样例输出

3

2 5

3 6

3 10

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值