全国信息学奥林匹克联赛( NOIP201 5)复赛 普及组
第 1页共 7页
CCF 全国信息学奥林匹克联赛 ( NOIP20 15) 复赛
普及组
(请选手务必仔细阅读本页内容)
一.题目概况
中文题目名称 金币 扫雷游戏 求和 推销员
英文题目与子目录名 coin mine sum salesman
可执行文件名 coin mine sum salesman
输入文件名 coin .in mine .in sum .in salesman .in
输出文件名 coin .out mine .out sum .out salesman .out
每个测试点时限 1秒 1秒 1秒 1秒
测试点数目 10 10 10 10
每个测试点分值 10 10 10 10
附加样例文件 有 有 有 有
结果比较方式 全文比较 ( 过滤行末空格及文末回车 )
题目类型 传统 传统 传统 传统
运行 内存上限 128M 128M 128 M 128M
二.提交源程序文件名
对于 C++ 语言 coin .cpp mine .cpp sum .cpp salesman .cpp
对于 C语言 coin .c mine .c sum .c salesman .c
对于 pascal 语言 coin .pas mine .pas sum .pas salesman .pas
三.编译命令(不包含任何优化开关)
对于 C++ 语言 g++ -o coin
coin .cpp -lm
g++ -o mine
mine .cpp -lm
g++ -o sum
sum .cpp -lm
g++ -o salesman
salesman .cpp -lm
对于 C语言 gcc -o coin coin .c
-lm
gcc -o mine mine .c
-lm
gcc -o sum
sum .c -lm
gcc -o salesman
salesman .c -lm
对于 pascal 语言 fpc coin .pas fpc mine .pas fpc sum .pas fpc salesman .pas
注意 事项 :
1、 文件名 (程序名和输入输出文件名) 必须使用 英文 小写 。
2、 C/C++ 中函数 main() 的返回值类型必须是 int ,程序正常结束时的返回值必须是 0。
3、 全国统一评测时采用的机器配置为: CPU AMD Athlon(tm) II x2 240 processor , 2.8 GHz ,
内存 4G,上述时限以此配置为准。
4、只提供 Linux 格式附加样例文件。
5、特别提醒: 评测在当前最新公布的 NOI Linux 下进行,各语言的编译器版本以其为准 。
全国信息学奥林匹克联赛( NOIP201 5)复赛 普及组
第 2页共 7页
1. 金币
(coin .cpp/c/pas )
【问题描述】
国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天
(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚
金币;之后四天(第七、八、九、十天),每天收到四枚金币…… ; 这种工资发放模式
会一直这样延续下去:当连续 N 天每天收到 N 枚金币后,骑士会在之后的连续 N+1 天
里,每天收到 N+1 枚金币。
请计算在前 K 天里,骑士一共获得了多少金币。
【输入 格式 】
输入文件名为 coin .in 。
输入文件只有 1行,包含一个正整数 K,表示发放金币的天数。
【输出 格式 】
输出文件名为 coin .out 。
输出文件只有 1行,包含一个正整数,即骑士收到的金币数。
【输入输出样例 1】
coin .in coin .out
6
14
见选手目录下的 coin/coin1 .in 和 coin/coin1 .ans 。
【 输入输出样例 1说明 】
骑士第一天收到一枚金币;第二天和第三天,每天收到两枚金币;第四、五、六天,
每天收到三枚金币。因此一共收到 1+2+2+3+3+3=14 枚金币。
【输入输出样例 2】
coin.in coin.out
1000
29820
见选手目录下的 coin/coin2 .in 和 coin/coin2 .ans 。
【数据说明】
对于 100% 的数据, 1 ≤ K ≤ 10,000 。
全国信息学奥林匹克联赛( NOIP201 5)复赛 普及组
第 3页共 7页
2. 扫雷游戏
( mine .cpp/c/pas )
【问题描述】
扫雷游戏是一款十分经典的单机小游戏。在 n行 m 列的雷区中有一些格子含有地雷
(称之为地雷格),其他格子不含地雷(称之为非地雷格)。玩家翻开一个非地雷格时,
该格将会出现一个数字 —— 提示周围格子中有多少个是地雷格。游戏的目标是在不翻出
任何地雷格的条件下,找出所有的非地雷格。
现在给出 n行 m列的雷区中的地雷分布,要求计算出每个非 地雷格 周围的地雷格数。
注:一个格子 的 周围 格子 包括 其 上、下、左、右、左上、右上、左下、右下八个方
向上与之直接相邻的格子。
【 输入 格式 】
输入文件名为 mine .in 。
输入文件第一行 是用一个空格隔开的 两个整数 n和 m,分别表示雷区的行数和列数。
接下来 n行,每行 m 个字符,描述了雷区中的地雷分布情况。字符’ *’表示相应
格子是地雷格, 字符 ’ ?’表示相应格子是非地雷格。相邻字符之间无分隔符。
【 输出 格式 】
输出文件名为 mine .out 。
输出文件包含 n行,每行 m 个字符,描述整个雷区。用’ *
NOIP2015_Junior,2015年信息学奥赛NOIP普及组复赛C++真题