1、N H O I 2 0 1 3 初中组试题 第 1 页 共 7 页 201 3 年 南海 区青 少 年信 息 学奥 林 匹克 竞 赛试 题 ( 初中 组 ) 注意事 项 : 1. 本次 竞 赛将 使用 评测 系统 进行自 动评 测 , 以 源 程序 的测试 结果 为准 。 2. 要 利用文件 严格按题 目要求 的格式 ( 参考输入 输出样 例 ) 进行 输入输出 , 否则 将被判为 错误而不得 分 。 3. 所有文 件要 按试 卷指 定的 文件名 命名 , 程 序中 不要 使用绝 对路 径 , 否则 将无 法测试 而被 判 为 0分 。 4. 比 赛结束前 , 要将最 完善的 源程序集 中保存
2、到 以选手 考号 ( 字 母用大写 ) 加姓 名命名的 文件夹中 ( 例如 : XJ3 72 陈 才 ), 该文件 夹中 不能 再设 子文 件夹 ; 同时 还 要 在 选 手程 序文件 夹 中 建一 个文 本 文件 “ 程序 清单 .txt ” , 文件 内容 写清 上交 的程 序文件 名 。 5. 现场编 程 3 小时 , 每 测试 点 时间 限 制 1 秒 、 内 存限 制 128 M, 每 题 5 0 分 , 总分 3 00 分 。 6. 各题 程 序及 数据 文件 名 规 定 : 题 号 第一题 第二题 第三题 第四题 第五题 第六题 试题名称 奇数 求和 圆环 旋转 得分 重要人 物
3、 程序文件名 odd.pa s/ odd.cp p sum.pa s/ sum.cp p ring .p as/ ring .c pp s quare .pas / s quare .cpp score .pas/ score .cpp vip .pa s/ vip .cp p 输入 文件名 odd .in sum .in ring .i n s quare .in score .in vip .in 输出文件名 odd .ou t sum .ou t ring .o ut s quare .out score .out vip .ou t 第 一 题 奇 数 ( o d d . p a s
4、/ c p p ) 问题描述 : 在 百 度 百科 ( h ttp: /ba ik e.baid u.co m/vi ew/2 0853 . htm ) 中说 道 : 奇 数 是一 种数 学 术 语 , 整数中 , 能被 2 整除的数是 偶 数 , 不能被 2 整除的数是 奇数 , 偶 数可 用 2k 表示 , 奇数可 用 2 k+1 表示 , 这 里k 是整 数 。 奇 数包 括正 奇 数 、 负 奇数 。 其 中注 意 : 0 不是奇数 , 是偶数 。 输入格式 ; 输入文 件 共 1 行 , 用 2 个 空格分 隔的 整 数 A 和 B ( - 20000 A B 2 0000 ) 输出
5、格式 : 输出文 件包 含 N +1 行 。 第 1 行一 个整 数 N , 表 示在 A 到 B 的 区间 ( 包 括 A 和 B ) 中共 有 N 个奇 数 。接下来 的 N 行 , 每行 一个 区间 A 到 B 中的 奇数 ( 从小到大输出 ) 。 输入样例 1 : 2 5 输出样例 1 : 2 3 5 输入样例 2 : - 1 8 N H O I 2 0 1 3 初中组试题 第 2 页 共 7 页 输出样例 2 : 5 - 1 1 3 5 7 数据范围 : 30% 的 数据 保证 - 200 A B 200 50% 的 数据 保证 - 2000 A B 200 0 70% 的 数据 保
6、证 - 1000 0 A B 1 0000 100% 的 数据 保证 - 200 00 A B 2 0000 第 二 题 求 和 ( s u m . p a s / c p p ) 问题描述 : 考虑自 然 数 1 到 N , 在 这 N 个数 之前 添加 “ + ” 或 “ - ” , 然后 将 N 数相 加得 到 和 S ( 0 S 1000 00 ) 。求可以 获得 和 S 最小 的自 然数 N 。 输入格式 ; 输入文 件仅 包 含 1 行 , 一 个整数 , 表 示 和 S 。 输出格式 : 输出文 件 第 1 行 一个 正整 数 , 表 示获 得 和 S 的 最小 自然 数 N 。
7、 接下来若干行 , 每行一个整数 , 表示 添 加 了 “ - ” 的自 然数 ( 添加了 “ + ” 的自然数不输出 ) , 按 从小到大 的顺 序输 出 。 注意 : 添加 “ + ” 或 “ - ” 的方 案可能不唯一 。 评测说明 : 此题共 10 个测 试点 , 每个测试点 5 分 , 如果第一行的最小自 然数 N 输出正确 , 可得 2分 。 在 N 正确的前提下 , 后面的方案输出正确 , 可 再得 3 分 , 没有方案 ( 除 无需加 “ - ” 的情况 ) 或 方案不正确 , 此 3 分不得 。 输入样例 : 12 输出样例 : 7 1 7 样例解释 : 因为 1 2= -
8、1 +2+3 +4+5 +6 - 7 , 故获得 和 1 2 的 最小 自然 数 是 7 , 在 1 到 7 的 7 个自 然 数中 , 在 1 和 7 之前添加 了 “ - ” 。 数据范围 : 10% 的 数据 保证 0 S 2 0 30% 的 数据 保证 0 S 1 50 60% 的 数据 保证 0 S 5 0000 100% 的 数据 保 证 0 S 100000 N H O I 2 0 1 3 初中组试题 第 3 页 共 7 页 第 三 题 圆 环 ( r i n g . p a s / c p p ) 问题描述 : 在一条 水平 直线 上依 次放 着 N 个 半径 大小 不同 的圆
9、 环 ( 从 左到 右依 次编 号为 1 到 N ) 。 每 一个 圆环 跟它 的 前一个圆环 和 后一个 圆环 接触 ( 除 第一 个和 最 后一个 ) , 如下 图所 示 。 当顺时 针推 动第 一个 环 ( 最左边 的环 ) 时 , 由于 摩 擦力的 作用 后面 的环 依次 跟着转 动 , 转动的方向如上图所示 , 转动的 速度 由于半径的不同而不 同 。 编程确 定当 第一 个环 转动 一圈时 , 后 面的环 各转 动 了多少 圈 。 注意 , 转动的圈 数不一定正好是整数 。 输入格式 ; 输入文 件 共 2 行 。 第 1 行 包含 一个 整 数 N ( 3 N 1 00) 。 第
10、 2 行 包 含 N 个 用空 格分 隔的整 数 A i(1 i N , 1 Ai 1000 ) , 依次 表示 第 i 个 环的 半径 。 输出格式 : 输出文 件包 含 N - 1 行 , 第 i 行 包 含一 个分 数 A/ B , 表 示第 i +1 个 环转 动的 圈数 , A/B 是最简 分式 ( 即A 和 B 没有 比 1 大的 公约 数 , 不 能再 约分 ) 。 输入样例 1 : 3 8 4 2 输出样例 1 : 2/1 4/1 输入样例 2 : 4 12 3 8 4 输出样例 2 : 4/1 3/2 3/1 输入样例 3 : 4 300 1 1 30 0 输出样例 3 :
11、300/1 300/1 1/1 数据范围 : 对于 2 0% 的 数据 保证 3 N 1 0 N H O I 2 0 1 3 初中组试题 第 4 页 共 7 页 对于 4 0% 的 数据 保证 3 N 3 0 对于 6 0% 的 数据 保证 3 N 5 0 对于 8 0% 的 数据 保证 3 N 9 0 对于 1 00% 的数 据保 证 3 N 100, 1 Ai 1000 第 四 题 旋 转 ( s q u a r e . p a s / c p p ) 问题描述 : 考虑下 图 1 的一 个由 5* 5 的正方 形 ( 每个 单元 格是 一个小 正方 形 ) , 其 中 有 7 个单元 格
12、被 填充 成了黑色 , 而其 余没 有填 充颜 色 。 图 1 原始图 ( 7 个黑色格子 ) 将这个 正方 形顺 时针 旋 转 90 度 , 然 后叠 加在 原始 图 1 之上 得到 新正 方形 图 2 ( 含 13 个黑 色格 子 ) : 图 2 第 1 次叠加后的效果 原始 图 1 在 第 1 次旋 转的 基础上 再顺 时针 旋 转 9 0 度 , 叠加 到 图 2 之上 , 得 到 图 3 所示 的正 方形 ( 含有 19 个黑 色格 子 ) : 图 3 第 2 次叠加后的效果 原始 图 1 在 第 2 次旋 转的 基础上 再顺 时针 旋 转 90 度 , 叠加 到图 3 之 上 ,
13、得 到 图 4 所 示的 正方 形 ( 含有 25 个黑 色格 子 ) : 图 4 第 3 次叠加后的效果 从原始 图到 第 3 次叠 加结 束 , 正 方形 中黑 色格 子数 量的变 化是 从 7 个 , 1 3 个 , 19 个 , 一 直到 25 个 。 N H O I 2 0 1 3 初中组试题 第 5 页 共 7 页 输入格式 ; 输入文 件仅 包 含 N+1 行 。 第一行 一个 整 数 N(1 N 25) 。 接下 来 N 行 , 每 行 N 个 “ 0 ” 或 “ 1 ” 构成 的序 列 , 表示正 方形 的初 始状 态 。 其中 “ 0 ” 表示 此处 的小正方 形式 没有
14、填充 颜色 的 , “ 1 ” 表 示此 处正 方形 已经是 黑色 填充 了 。 输出格式 : 输出文 件共 四行 。 每行 包 含一个 整数 , 分别 表示 每 次叠加 后 N *N 正 方形 中黑 色格子 的数 量 ( 其 中第一行为 原始 图中 黑色 格子 的数量 ) 。 输入样例 1 : 5 10100 10001 01100 01000 00000 输出样例 1 : 7 13 19 25 输入样例 2 : 4 0000 0100 0010 0001 输出样例 2 : 3 6 7 8 数据范围 : 30% 的 数据 保证 1 N 5 50% 的 数据 保证 1 N 1 2 80% 的
15、数据 保证 1 N 20 100% 的 数据 保 证 1 N 25 第 五 题 得 分 ( score . p a s / c p p ) 问题描述 : 现在 z ql 手上 有 N 道题 , 他总共 有 T 的 时间 来完 成 他们中 的一 些或 全部 。 每 道题有 一个 完成 所需时间 t i 和一 个难 度系 数 ci 。 如 果 zq l 在 剩余 x 个单 位时 间的 时候 开始 做题 i , 并 且能 够完 成 ,那么总 分加 上 x *ci 。 现 在 zql 要 从这 N 道 题中 选出一 些在 T 个 单位 时间 内完成 , 并 且按 照某 种顺序依次 完成它们 ( zql
16、 每个单位 时间只能做一 道题 , 并且 一旦他决 定做 某题就会一 直做直到做完 ) , 那N H O I 2 0 1 3 初中组试题 第 6 页 共 7 页 么他最 多能 够拿 到多 少分 呢 ? 输入格式 ; 输入 score. in 总共包 括 N+1 行 第一行 , 两 个用 空格 隔开 的 正整数 N 和 T , 分 别表 示 题目总 数和 总时 间 。 第 2 到 N+1 行 , 每 行 包含 两 个正整 数 , 第 i +1 行的两 个 正整数 分别 表示 ti 和 ci . 输出格式 : 输出 score. out 总共 包括 1 行 。 一行 一个 整数 , 表 示 最大能
17、 够得 到的 分数 。 输入样例 1 : 3 10 2 1 8 9 2 5 输出样例 1 : 122 输出解 释 : 最优 方案 为在 剩 余 10 个单位 时间 的时 候 开 始做第 3 题 ( 需 要 2 个单位 时 间 ), 剩 余 8 个 单位 时间 的时候开 始做 第 2 题 ( 需 要 8 个 单 位时 间 ), 总得 分 为 105+(1 0 - 2) 9= 122 。 输入样例 2 : 3 12 3 6 7 5 4 2 输出样例 2 : 117 数据范围 : 对于 20 % 的 数据 , N 8 , T 200 。 对于 60 % 的 数据 , N 1 5 , T 1000 。
18、 对于 90 % 的 数据 , N 200 0 且满足 T 不 小于 做完 N 道题 所需时 间的 总和 。 对于 10 0% 的 数据 , N 300 0 , T 100 00 , 所 有 ti 和 ci 均不超 过 10 0 。 保证 答案 在 32 位有 符号 整型 范 围 内 。 第 六 题 重 要 人物 ( v i p . p a s / c p p ) 问题描述 : 某重要 人 物 P 要 寻访 城 市 C 的 G 个地 方 , 由于 该人 物 非常重 要 , 交警 打算 对人 物 P 行 走的 街道 进行临时封 道 ( 不准普通市民 进入 , 但如果在封道 前进 入的可以继续行走
19、 , 也可 以正常出去 ) 。 当人 物 P 进入这条 街道 之前 和 P 走出 这条街 道之 后 , 普通 市民 都可以 正常 进入 该街 道 。 比如 , P 在第 10 分钟 期间 进入街 道 X , 并 要 X 街 道 上行 走 5 分钟 , 则 在 第 10 、 11 、 12 、 13 、 14 分钟期间 , 普 通市 民不 可以 进入 X 街道 , 市 民可 以在 第 9 分 钟之 前 ( 含第 9 分 钟 ) 进 入 , 也可 以在 第 15分钟之 后 ( 含 第 15 分钟 ) 进入 。 人物 P 寻访 K 分钟后 , 有 一 市民 S 打算 从城 市 的 A 处 到达 B
20、处 , 请 编程 计算 P 从 A 到 B 的 最少 用时 。注意 : 市民 S 在行走的过 程中某条街道可以走 , 但 为了用更短的时间 , 可以 选择等待 ! 输入格式 ; 输入文 件 共 M+3 行 。 第 1 行 2 个 整数 N 和 M ( 2 N 1000 , 2 M 10 000) , 分 别表 示城 市中的 结点 ( 即 某个N H O I 2 0 1 3 初中组试题 第 7 页 共 7 页 地方 , 从 1 到 N 编号 ) 的 数量以 及街 道的 数目 。 第 2 行 包 含 4 个 整 数 A, B , K 和 G ( 1 A ,B N, 0 K 1 000, 0 G 1
21、 000) , 分别 表示 : l 市民 S 的出 发地 l 市民 S 的目 的地 l 市民 S 是在 人 物 P 寻 访 K 分钟后 开始 出发 l 人物 P 寻访 的结 点 ( 地方 ) 数量 第 3 行 G 个 整数 , 表 示人 物 P 将 要寻 访 的 G 处 地方 的编号 , 每 一对 结点 代表 了人 物 P 寻 访要 经过 的街道 , 每条 街道 仅走 一次 。 接下 来 M 行 , 每 行 3 个 整 数 A, B 和 L ( 1 A, B N, 0 L 10 00) , 表示 A 和 B 之 间有 一条需要 走 L 分钟 的街 道 ( 假定人 物 P 和市 民 S 行走 速
22、度相 同 ) 。 输出格式 : 输出文 件包 含 1 行 , 表示 市民 S 从 A 处到 达 B 处的 最少用 时 ( 单位 分钟 ) 。 输入样例 1 : 6 5 1 6 20 4 5 3 2 4 1 2 2 2 3 8 2 4 3 3 6 10 3 5 15 输出样例 1 : 21 输入样例 2 : 8 9 1 5 5 5 1 2 3 4 5 1 2 8 2 7 4 2 3 10 6 7 40 3 6 5 6 8 3 4 8 4 4 5 5 3 4 23 输出样例 2 : 40 数据范围 : 40% 的 数据 保证 2 N 550 且 2 M 4 000 100% 的 数据 保 证 2 N 100 0 且 2 M 10 0 00