- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NOIP2013提高组复赛试题day1
CCF 全国信息学奥林匹克联赛(NOIP2013)复赛
提高组 day1
(请选手务必仔细阅读本页内容)
一.题目概况
中文题目名称 转圈游戏 火柴排队 货车运输 英文题目与子目录名 circle match truck 可执行文件名 circle match truck 输入文件名 circle.in match.in truck.in 输出文件名 circle.out match.out truck.out 每个测试点时限 1 秒 1 秒 1 秒 测试点数目 10 10 20 每个测试点分值 10 10 5 附加样例文件 有 有 有 结果比较方式 题目类型 传统 传统 传统 运行内存上限 128M 128M 128M
二.提交源程序文件名
对于 C++语言 circle.cpp match.cpp truck.cpp 对于 C 语言 circle.c match.c truck.c 对于 pascal 语言 circle.pas match.pas truck.pas
对于 C++语言 g++ -o circle circle.cpp -lm g++ -o match match.cpp -lm g++ -o truck truck.cpp -lm 对于 C 语言 gcc-o circle circle.c
-lm gcc-o match match.c – lm gcc-o truck truck.c
-lm 对于 pascal 语言 fpc circle.pas fpc match.pas fpc truck.pas
注意事项:
1、文件名(程序名和输入输出文件名)必须使用英文小写。
2、C/C++中函数 main 的返回值类型必须是 int,程序正常结束时的返回值必须是 0。
3、全国统一评测时采用的机器配置为:CPU AMD Athlon tm 64x2 Dual Core CPU 5200+,
2.71GHz,内存 2G,上述时限以此配置为准。
4、只提供 Linux 格式附加样例文件。
5 NOI Linux 下进行。
1.转圈游戏
circle.cpp/c/pas
【问题描述】
n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏。按照顺时针方向给 n 个位置编号,从 0 到 n-1。最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置,……,依此类 推。
0 号位置上的小伙伴顺时针走到第 m 号位置,第 1 号位置小伙伴走到第 m+1 号位置,……,依此类推,第n ? m号位置上的小伙伴走到第 0 号位置,第n-m+1 号位置上的小伙伴走到第 1 号位置,……,第 n-1 号位置上的小伙伴顺时针走到第m-1 号位置。
现在,一共进行了 10k 轮,请问 x 号小伙伴最后走到了第几号位置。
【输入】
输入文件名为 circle.in。
输入共 1 行,包含 4 个整数 n、m、k、x,每两个整数之间用一个空格隔开。
输出文件名为 circle.out。
输出共 1 行,包含 1 个整数,表示 10k 轮后 x 号小伙伴所在的位置编号。
【输入输出样例】
circle.in circle.out 10 3 4 5 5
对于 30%的数据,0 k 7;
对于 80%的数据,0 k 107;
对于 100%的数据,1 1,000,000,0 m n ,0 ≤ x ≤ n,0 k 109。
2.火柴排队
match.cpp/c/pas n 根火柴,每根火柴都有一个高度。现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为:,其中 ai 表示第一列火柴中第 i 个火柴的高度,bi 表示第二列火柴中第 i 个火柴的高度。
每列火柴中相邻两根火柴的位置都可以交换,请你通过交换使得两列火柴之间的距离最 小。请问得到这个最小的距离,最少需要交换多少次?如果这个数字太大,请输出这个最小交换次数对 99,999,997 取模的结果。
【输入】
输入文件为 match.in。
共三行,第一行包含一个整数 n,表示每盒中火柴的数目。
第二行有 n 个整数,每两个整数之间用一个空格隔开,表示第一列火柴的高度。
第三行有 n 个整数,每两个整数之间用一个空格隔开,表示第二列火柴的高度。
【输出】
输出文件为 match.out。
输出共一行,包含一个整数,表示最少交换次数对 99,999,997 取模的结果。
【输入输出样例 1】
match.in match.out 4
2 3 1 4
3 2 1 4 1 【输入输出样例说明】
最小距离是 0,最少需要交换 1 次,比
文档评论(0)