搜档网
当前位置:搜档网 › 2016年青岛市第一届“二中杯”计算机程序设计邀请赛

2016年青岛市第一届“二中杯”计算机程序设计邀请赛

2016年青岛市第一届“二中杯”计算机程序设计邀请赛
2016年青岛市第一届“二中杯”计算机程序设计邀请赛

第一届“二中杯”计算机程序设计邀请赛

竞赛时间:(13:30——17:00)

题目名称可爱的学校最强智能运动会开幕式围棋游戏目录qdez clever line chess

可执行文件名qdez.exe clever.exe line.exe chess.exe 输入文件名qdez.in clever.in line.in chess.in 输出文件名qdez.out clever.out line.out chess.out 每个测试点时限1秒3秒1秒1秒

内存限制512MB 512MB 512MB 512MB

测试点数目10 10 10 20

每个测试点分值10 10 10 5

是否有部分分无无无无

题目类型传统型传统型传统型传统型

是否有附加文件无无无无

提交源程序须加后缀

对于Pascal语言qdez.pas clever.pas line.pas chess.pas 对于C 语言qdez.c clever.c line.c chess.c

对于C++ 语言qdez.cpp clever.cpp line.cpp chess.cpp

注意事项:

1.文件名(程序名和输入输出文件名)必须使用英文小写。

2.评测在Windows下进行。

3.评测时忽略多余的空格和制表符。

4.评测时不开任何优化开关。

可爱的学校

【问题描述】

崂山巍巍,黄海滔滔,

琴岛相伴我们那可爱的学校。

欢迎你来到山东省青岛第二中学。

作为本次邀请赛的第一题,请你输出EZ(二中)。

定义如下:

E 最左面是一个长度为3*n-2的竖线,然后在最上面,正中间,最下面分别是一条长度2*n-1的直线;

Z 上面下面都是长度为3*n-4的横线,然后从第二行最右面向左下角拉一条高度为3*n-4的斜线;

E和Z直接间隔为(n+1)/2;

输出时用*代替黑色部分,空格代替白色部分。

【输入格式】

从文件qdez.in中读入数据。

输入数据的第一行包含1个正整数n。

【输出格式】

输出到文件qdez.out中。

如题目描述

【样例输入1】

3

【样例输出1】

***** *****

* *

* *

***** *

* *

* *

***** *****

【样例解释1】

如果空格使用可见字符,应该如下图所示

*****..*****

*..........*

*.........*.

*****....*..

*.......*...

*......*....

*****..*****

【样例输入2】

5

【样例输出2】

********* ***********

* *

* *

* *

* *

* *

********* *

* *

* *

* *

* *

* *

********* ***********

【样例解释2】

*********...*********** *.....................* *....................*. *...................*..

*..................*...

*.................*....

*********........*.....

*...............*......

*..............*.......

*.............*........

*............*.........

*...........*..........

*********...***********

【数据范围】

存在10%的数据 n=3;存在10%的数据 n=5;存在10%的数据 n=7;对于100%的数据,3<=n<=100且n为奇数。

最强智能

【问题描述】

众所周知,青岛二中是众多能人的聚集地。

首次“最强智能”大赛顺利举行,让我们大开眼界。各路大神,各显神通,向大家展示自己过人的本领。

你也想报名参加这项比赛,于是想到了一个绝活,你能非常快的计算两个大整数的和,至于多大嘛?当然是非常大了。

你的任务就是写一个程序计算两个数的和。

【输入格式】

从文件clever.in中读入数据。

输入数据的第一行包含2个正整数lenA,lenB,中间用单个空格隔开,分别表示数字A的长度和数字B的长度。

第二行包含1个正整数A。

第三行包含1个正整数B。

【输出格式】

输出到文件clever.out中。

输出文件包括一行。

第一行输出1个整数,表示A+B的值。

【样例输入】

2 3

10

110

【样例输出】

120

【数据规模与约定】

对于10%的数据,lenA,lenB<=9,

对于30%的数据,lenA,lenB<=18,

对于60%的数据,lenA,lenB<=100,

对于80%的数据,lenA,lenB<=100,000,

对于100%的数据,lenA,lenB<=2,000,000。

对于100%的数据,保证输入的A和B合法。

运动会开幕式

【问题描述】

二中是一个重视体育锻炼的学校,每年会举办两次运动会,为了准备运动会开幕式,老师要给大家安排一个特殊的队形。

一共有n个同学排成一行,每个同学都有一个身高a i,现在要求按站队的顺序选出一些同学,要求他们的身高先递增,后递减。

即假设选出的同学为b1、b2……bm,则a b1a bj+1>……>a bm,

其中1<=bj<=n,且b1

现在老师想让尽可能多的同学参加开幕式,请问最多能选出多少人呢?

【输入格式】

从文件line.in中读入数据。

输入数据的第一行包含1个正整数n,表示同学个数。

第二行包含n个正整数,第i个正整数表示第i个同学的身高ai。

【输出格式】

输出到文件line.out中。

输出文件包括一行。

第一行输出1个整数,表示最多能选出多少人。

【样例输入】

7

1 6 5 6 2

【样例输出】

4

【样例解释】

选择第1、2、3、5名同学排队,共4名。

【数据规模与约定】

对于30%的数据,n<=10,

对于60%的数据,n<=100,

对于100%的数据,n<=1,000。

围棋游戏

【问题描述】

看到围棋软件阿尔法狗(AlphaGo)战胜李世石的新闻后,二中学生David决定要开发一个下井字棋的软件阿尔法猫(AlphaMao)。

井字棋游戏在一个 3 * 3 的棋盘中进行,Player1 和 Player2 中有一个是先手。从先手开始,每个人轮流在棋盘中放置自己的棋子。每个人每次放置一枚棋子,每个格子只能放一枚棋子。Player1 的棋子用 'x' 表示,Player2 的棋子用 'o' 表示。如果某个时刻,棋盘上出现了一条直线上的 3枚棋子是同一个人放置的,那么这个人获胜,游戏立即结束。此处的“一条直线”可以是横着的一行,或者竖着的一列,或者是一条对角线。如果棋盘上的 9 个格子都放置了棋子,而并没有人获胜,那么这局游戏为和局,游戏立即结束。

学习了机器学习的一套理论之后,David要用大量棋谱来“训练”阿尔法猫。现在他找来了 T 个棋谱,他想知道,对于每个棋谱代表的局面,是下列的哪种情况:

1)游戏以 Player1 获胜结束

2)游戏以 Player2 获胜结束

3)游戏以和局结束

4)游戏尚未结束

5)这个局面记录错误(即按照游戏规则,这个局面不可能出现)

需要注意的是,在每局游戏中,先手可能是 Player1,也可能是 Player2.

由于David忙于开发阿尔法猫,所以他请你来帮助他判断每个局面的种类。

【输入格式】

从文件chess.in中读入数据。

输入的第一行为一个整数 T , 表示需要判断的局面数量。

接下来为 T 个局面。每个局面由 3 行 3 列的字符构成。

3 行 3 列的字符表示这个局面的 3 * 3 棋盘上的情况。

字符 'x' 表示 Player1 的棋子,字符 'o' 表示 Player2 的棋子,字符 '.' 表示这个格子上没有棋子。

两个局面的输入之间空一行。

【输出格式】

输出到文件line.out中。

对于每个局面,输出一行。

如果这个局面为“游戏以 Player1 获胜结束”,输出 "Player1 won!"。

如果这个局面为“游戏以 Player2 获胜结束”,输出 "Player2 won!"。

如果这个局面为“游戏以和局结束”,输出 "Drawn game."。

如果这个局面为“游戏尚未结束”,输出 "Not finished yet."。

如果这个局面为“这个局面记录错误”,输出 "QAQ!"。

请注意,输出的字符串不包含引号。

【样例输入】

5

xxx

.oo

...

o.x

xo.

x.o

xox

xxo

oxo

...

.o.

...

xxx

xxx

xxx

【样例输出】

Player1 won!

Player2 won!

Drawn game.

Not finished yet.

QAQ!

【数据规模与约定】

对于30%的数据,T <= 100;

对于100%的数据,T <= 20000。

相关主题