foodszhu
2013编程之美全国挑战赛 ----- 测试赛

本帖最后由 foodszhu 于 2013-4-4 18:43 编辑

来自http://programming2013.cstnet.cn/warmup

测试赛。。。菜鸟级。。。。各位初学者可以尝试。。。大家也可以讨论一下不同的方法和各种各样的思路。。。如果有问题。。这种题感觉吾辈还是可以100%解答的。。。实在解答不了的就@Mr_Alex @Whisper1166

题目分为小数据和大数据,但是测评时只考虑小数据。。。(亏我A+B还写了个高精度出来)

第一题 A+B

时间限制: 1000ms 内存限制: 1024MB

描述输入两个正整数A和B, 求A+B的值

输入两个正整数A, B

输出A+B的和

对于小数据, 0 < A, B <= 10; 对于大数据, 0 < A, B <= 10^100

不想说了。。。万年第一题。。。有兴趣的同学请写高精度

第二题 石头剪刀布

时间限制: 1000ms 内存限制: 1024MB

描述石头剪刀布是常见的猜拳游戏。石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。

一天,小A和小B正好在玩石头剪刀布。已知他们的出拳都是有规律的,比如:“石头-布-石头-剪刀-石头-布-石头-剪刀……”,就是以“石头-布-石头-剪刀”为周期的。请问,小A和小B比了N轮之后,谁赢了?

输入输入的第一行包含一个整数K,表示K组测试数据。

之后的每组测试数据包含三行。第一行包含三个整数:N,NA,NB,分别表示比了N轮,小A出拳的周期长度,小B出拳的周期长度。第二行包含NA个整数,表示小A出拳的规律,第三行包含NB个整数,表示小B出拳的规律。其中,0表示“石头”,2表示“剪刀”,5表示“布”。

对于小数据,0 < K,N,NA,NB <= 10;对于大数据,0 < K,N,NA,NB <= 100;

输出对于每组测试数据,输出一行。如果小A赢了,输出A;如果小B赢了,输出B;如果两人打平,输出draw。

提示对于第一组测试数据,猜拳过程为:

A:0 2 5 0 2 5 0 2 5 0

B:0 5 0 2 0 5 0 2 0 5

所以A赢了4轮,B赢了2轮,双方打平4轮,所以A赢了。

对于第二组测试数据,猜拳过程为:

A:2 0 5 2 0

B:0 2 5 0 2

所以A赢了2轮,B赢了2轮,双方打平1轮,所以最终打平了。

样例输入

2

10 3 4

0 2 5

0 5 0 2

5 3 3

2 0 5

0 2 5

样例输出

Ad

raw

模拟题。。。很基础。。。至于给的大数据也没觉得大到哪里去。。。。

不过应该也是有其他做法的希望能多多讨论!

踩方格

时间限制: 1000ms 内存限制: 1024MB

描述有一个方格矩阵,矩阵边界在无穷远处。我们做如下假设:

a. 每走一步时,只能从当前方格移动一格,走到某个相邻的方格上;

b. 走过的格子立即塌陷无法再走第二次;

c. 只能向北、东、西三个方向走;

请问:如果允许在方格矩阵上走n步,共有多少种不同的方案。2种走法只要有一步不一样,即被认为是不同的方案。

输入允许在方格上行走的步数n

输出计算出的方案数量

对于小数据1 <= n <= 20; 对于大数据1 <= n <= 100.

样例输入

2

样例输出

7

这题大家就好好讨论吧。。。能否直接推出数学表达式?

foodszhu
求一下特徵根
展开Biu

terry182 发表于 2013-4-4 20:58

求一下特徵根 不就好了

特征根带根号啊。。。。浮点数计算机难道能算出整数来么。。。

[查看全文]
terry182
通项公式很好求
展开Biu

foodszhu 发表于 2013-4-4 20:56

通项公式很好求。。。只是带根号。。。不能直接写程序。。

求一下特徵根 不就好了

[查看全文]
foodszhu
他說的是數學表達式
展开Biu

terry182 发表于 2013-4-4 20:29

他說的是數學表達式.. 也就是說 是像通項公式之類的

通项公式很好求。。。只是带根号。。。不能直接写程序。。

[查看全文]
foodszhu
不过水题就是这样了
展开Biu

terry182 发表于 2013-4-4 20:21

int top=1,lr=2;

while (--n)

{ int temp=lr;

不错哦。。。不过水题就是这样了

[查看全文]
foodszhu
不知能否提交上看看
展开Biu

Whisper1166 发表于 2013-4-4 19:58

不知能否提交上看看?

不用交了。。。理论来说没错的。。

[查看全文]
terry182
不知能否提交上看看
展开Biu

Whisper1166 发表于 2013-4-4 19:58

不知能否提交上看看?

@狂奔的瘦子 @moxiagy @兰陵笑忘生 @libin7099 ...

他說的是數學表達式.. 也就是說 是像通項公式之類的

[查看全文]
terry182
本帖最后由
展开Biu

本帖最后由 terry182 于 2013-4-4 20:26 编辑

int top=1,lr=2;

while (--n)

{ int temp=lr;

lr+=top*2;

top+=temp;

}

cout << top+lr << endl;

第3題大概就是這樣吧。

[查看全文]
_Nozomi
本帖最后由
展开Biu

本帖最后由 Whisper1166 于 2013-4-4 20:07 编辑

[fold=戳]

表达式:

代码:

[/fold]

不知能否提交上看看?

@狂奔的瘦子 @moxiagy @兰陵笑忘生 @libin7099901 @汝欠咱的一生 来做题@@1!!

[查看全文]