noip2013 模拟试题

合集下载

NOIP2013提高组复赛试题day1+day2

NOIP2013提高组复赛试题day1+day2

CCF 全国信息学奥林匹克联赛(NOIP2013)复赛提高组 day11.转圈游戏(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,每两个整数之间用一个空格隔开。

【输出】输出文件名为c ircle.out。

输出共1行,包含1个整数,表示10k 轮后x号小伙伴所在的位置编号。

【输入输出样例】circle.in circle.out10 3 4 5 5【数据说明】对于30%的数据,0 < k < 7;对于80%的数据,0 < k < 107;对于100%的数据,1 < n< 1,000,000,0 <m <n ,0 ≤ x ≤ n,0 < k< 109。

2.火柴排队(match.cpp/c/pas)【问题描述】涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度。

现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为:,其中 ai表示第一列火柴中第 i 个火柴的高度,bi 表示第二列火柴中第 i 个火柴的高度。

每列火柴中相邻两根火柴的位置都可以交换,请你通过交换使得两列火柴之间的距离最小。

学军中学NOIP2013提高组原创模拟题day2

学军中学NOIP2013提高组原创模拟题day2

学军中学NOIP2013提高组原创模拟题day2测试时间:3.5小时注意事项:1.评测时采用的机器配置为:CPU T83002.40GHz,内存4G。

2.某些题目数据量大,请C++选手谨慎使用cin读入数据。

1.完全平方数(number.cpp/c/pas)【问题描述】一个数如果是另一个整数的完全平方,那么我们就称这个数为完全平方数(Pefect Sqaure),也称平方数。

小A认为所有的平方数都是很perfect的~于是他给了小B一个任务:用任意个不大于n的不同的正整数相乘得到完全平方数,并且小A 希望这个平方数越大越好。

请你帮助小B告诉小A满足题意的最大的完全平方数。

【输入】输入文件名为number.in输入仅1行,一个数n。

【输出】输出文件名为number.out输出仅1行,一个数表示答案。

由于答案可以很大,所以请输出答案对100000007取模后的结果。

【输入输出样例1】number.in7number.out144【输入输出样例解释1】144=2×3×4×6,是12的完全平方。

【输入输出样例2】number.in9number.out5184【输入输出样例解释2】5184=3×4×6×8×9,是72的完全平方。

【数据范围】对于20%的数据,0<n≤100;对于50%的数据,0<n≤5,000;对于70%的数据,0<n≤100,000;对于100%的数据,0<n≤5,000,000。

2.卡片游戏(game.cpp/c/pas)【问题描述】小D举办了元旦联欢活动,其中有一个卡片游戏。

游戏的规则是这样的:有n张卡片,每张卡片上正面写着一个小于等于100的正整数a i,反面都是一样的花色。

这n张卡片正面朝下叠成一堆,玩这个游戏的人从中可以抽出连续的k(1≤k≤n)张卡片。

如果对于这k张卡片上的数字的平均值a,满足l<=a<=r,那他就可以获得小礼物一件。

NOIP2013冲刺训练(第十四组)

NOIP2013冲刺训练(第十四组)

全国信息学奥林匹克联赛(NOIP2013)复赛模拟提高组第二试2013年10月20日8:30-12:00(要求每道题建立子文件夹并把程序放入子文件夹中)一、题目概况中文题目名称剑与魔法矩形数列的GCD 英文题目名称dragons rect gcd 可执行文件名dragons rect gcd 输入文件名dragons.in rect.in gcd.in 输出文件名dragons.out rect.out gcd.out每个测试点时限1秒1秒1秒测试点数目102010每个测试点分值10510附加样例文件有有有题目类型传统传统传统二、提交源程序文件名对于pascal语言dragons.pas rect.pas gcd.pas 对于C语言dragons.c rect.c gcd.c 对于C++语言dragons.cpp rect.cpp gcd.cpp三、编译命令(不包含任何优化开关)对于pascal语言fpc dragons.pas fpc rect.pas fpc gcd.pas对于C语言gcc–o dragonsdragons.c-lmgcc–o rectrect.c-lmgcc–o gcdgcd.c-lm对于C++语言g++-o dragonsdragons.cpp-lmg++-o rectrect.cpp-lmg++-o gcdgcd.cpp-lm四、运行内存限制内存上限128M128M128M五、注意事项1、文件名(程序名和输入输出文件名)必须使用小写。

2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。

3、全国统一评测时采用的机器配置为:CPU1.9GHz,内存1G,上述时限以此配置为准。

各省在自测时可根据具体配置调整时限。

1.剑与魔法(dragons.pas/c/cpp)【问题描述】万老师听说某大国很流行穿越,于是他就想写一个关于穿越的剧本。

闲话休提。

学军中学NOIP2013提高组原创模拟题解

学军中学NOIP2013提高组原创模拟题解

学军中学NOIP2013提高组原创模拟题解(每试3.5小时)DAY11.装果子关键词:二分二分V,然后每次O(n)判断一遍。

如果可以装进全部的果子就二分左区间,如果不行就二分右区间。

开long long是必然的。

时间复杂度:O(nlog21014)2.零件加工关键词:贪心按照t/s升序排序然后计算,比较大小的时候注意交叉相乘。

对于最后20%的数据相乘时可以使用二进制乘法以避免高精度:long long mul(long long a,long b){long long ret=0;while(a){if(a&1)ret=(ret+b)%MOD;a>>=1;b=(b<<1)%MOD;}return ret;}时间复杂度:O(nlog2n)3.种树关键词:差分约束系统开一个s数组记录前缀和。

根据题意我们可以得到3个约束条件:s[r]-s[l-1]≥c,①s[i]≥s[i-1],②s[i]-s[i-1]≤k,③根据①得s[l]-s[r]≤-c,在r和l-1之间连一条权值为-c的边。

根据②得s[i-1]-s[i]≤0,在i和i-1之间连一条权值为0的边。

根据③在i-1和i之间连一条权值为k的边。

50分算法:Bellman-Ford。

时间复杂度:O(nm)70分算法:SPFA。

时间复杂度:O(km)100分算法:观察到最大可能需要连150w条边,因此我们要考虑有些边是否需要连。

我们可以只根据条件①计算,每次更新后O(n)检查是否满足条件②和③,如果不满足就修改,这样只用连50w条边,可以过全部数据。

NOIP2013完整版第十九届全国奥林匹克信息学联赛初赛

NOIP2013完整版第十九届全国奥林匹克信息学联赛初赛

}
A. O(1)
B. O(n)
C. O(n²) D. O(Fn)
8. 二叉查找树具有如下性质:每个节点的值都大于其左子树上所有节点的值、小于其右子
树上所有节点的值。那么,二叉查找树的( )是一个有序序列。
A. 先序遍历 B. 中序遍历 C. 后序遍历 D. 宽度优先遍历
CCF NOIP2013 初赛提高组 C 语言试题 第 1 页,共 8 页
12 个顶点的二分图至多有( )条边。
A. 18
B. 24
C. 36
D. 66
12.( )是一种通用的字符编码,它为世界上绝大部分语言设定了统一并且唯一的二进制
编码,以满足跨语言、跨平台的文本交换。目前它已经收录了超过十万个不同字符。
A. ASCII B. Unicpde
C. GBK 2312 D.BIG5
CCF NOIP2013 初赛提高组 C 语言试题 第 5 页,共 8 页
注:本品是我据 NOIP2013C 语言初赛试题做出来的,若有侵权,请告知本人会尽快处理,若有转载,请说 明出处。
24
32
41
43
45
54
64 输出:
五、完善程序(第 1 题 15 分,第二题 13 分,共计 28 分) 1. (序列重排)全局数组变量 a 定义如下:
C. 欧拉 (Leohard Euler)
D. 克劳德·香农(Claude Shannon)
5. 已知一棵二叉树有 2013 个节点,则其中至多有( )个节点有两个子节点。
A. 1006
B. 1007
C. 1023
D.1024
6. 在一个无向图中,如果任意两点之间都存在路径相连,则称之为连通图。

NOIP2013普及组模拟试题1

NOIP2013普及组模拟试题1

全国信息学奥林匹克联赛(NOIP2013)复赛模拟普及组一.题目概览中文题目名称lignment 消息传递Cow Crossings算周长英文题目名称lignment relay crossings perimeter可执行文件名lignment relay crossings perimeter 输入文件名lignment.in relay.in crossings.in perimeter.in 输出文件名lignmentout relay.out crossings.out perimeter.out 每个测试点时限1秒1秒1秒1秒测试点数目10 10 10 10每个测试点分值10 10 10 10 比较方式全文比较全文比较全文比较全文比较题目类型传统传统传统传统二.提交源程序文件名对于pascal语言alignment pas relay.pas crossings.pas perimeter.pas 对于C语言alignment.c relay.c crossings.c perimeter.c 对于C++语言alignment.cpp relay.cpp crossings.cpp perimeter.cpp三.编译命令(不包含任何优化开关)对于pascal语言fpc queue.pas fpc windows.pas fpc s4.pas fpc book.pas对于C语言gcc –o queuequeue.c gcc –o windowswindows.cgcc –o s4s4.cgcc –o bookbook.c对于C++语言g++ –o queuequeue.cpp g++ –o windowswindows.cppg++ –o s4s4.cppg++ –obookbook.cpp四.运行内存限制运行内存上限50M 50M 50M 50M注意事项:1、文件名(程序名和输入输出文件名)必须使用小写。

NOIP2013提高组复赛试题

NOIP2013提高组复赛试题

NOIP2013提高组复赛试题CCF 全国信息学奥林匹克联赛(NOIP2013)复赛提高组 day11.转圈游戏(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 号位置。

现在,一共进行了10^k 轮,请问x 号小伙伴最后走到了第几号位置。

【输入】输入文件名为circle.in。

输入共1 行,包含4 个整数n、m、k、x,每两个整数之间用一个空格隔开。

【输出】输出文件名为c ircle.out。

输出共1行,包含1个整数,表示10k 轮后x号小伙伴所在的位置编号。

【数据说明】对于30%的数据,0 < k < 7;对于80%的数据,0 < k < 107;对于100%的数据,1 < n< 1,000,000,0 <="" <="" <="" n,0="" p="" x="" ≤="" ,0="">2.火柴排队(match.cpp/c/pas)【问题描述】涵涵有两盒火柴,每盒装有n 根火柴,每根火柴都有一个高度。

现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为:,其中 ai 表示第一列火柴中第i 个火柴的高度,bi 表示第二列火柴中第 i 个火柴的高度。

NOIP2013普及组模拟试题3

NOIP2013普及组模拟试题3

NOIP模拟题bronze刘启鹏竞赛时间:2010年11月13日 8:30-11:30注意:最终测试时,所有编译命令均不打开任何优化开关。

Linear T riple【问题描述】一个线性三元组是指一个满足如下关系有序三元组(s1,s2,s3):s3-s2=s2-s1.如(1,2,3),(2,4,6),(14,21,28)都是满足条件的线性三元组.对于给定的一个S个元素的集合(元素值在1..100间),请输出可以组成的线性三元组的数目。

【输入格式】第一行:一个整数,S (3 <= S <= 30)。

第二行:S个用空格隔开的整数.【输出格式】仅一行,包含一个整数,可以组成的线性三元组的数量,保证在长整形范围内。

【样例输入1】71 2 3 4 6 8 9【样例输出1】5【数据说明】这些三元组是:1 2 32 3 42 4 63 6 94 6 8。

NOIP模拟题bronze 刘启鹏P vs NPP vs NP【问题描述】P/NP问题是在理论信息学中计算复杂度理论领域里至今没有解决的问题,它被“克雷数学研究所”(Clay Mathematics Institute, 简称CMI)在千禧年大奖难题中收录。

P/NP问题中包含了复杂度类P与NP的关系。

1971年Stephen A. Cook 和Leonid Levin 相对独立的提出了下面的问题,即是否两个复杂度类P和NP是恒等的(P=NP?)。

这个问题似乎难了点,放在NOIP第一题不太人道。

放心,你需要解决的只是一个简化版的问题:P=N*P?【输入格式】输入的第一行包含两个数,分别为N和P。

【输出格式】如果P=N*P,输出True。

否则输出False。

【样例输入1】1 123789325797235098234798235709235092357092357092347092370924234 【样例输出1】True【样例输入2】-3.14159265358979323846264338327950288419716939937510 0【样例输出2】True【数据说明】保证读入不会超过0.1s。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

排名(paiming.pas/c/cpp)
[问题描述]
宁波市的小学生们在镇海中学完成程序设计比赛后,老师们批出了所有学生的成
绩,成绩按分数从高到低排名,成绩相同按年级从低到高排(注:纯属虚构,勿对号入座)。

现在主办单位想知道每一个排名的学生前,有几位学生的年级低于他(她)。

[输入]
输入文件paiming.in,有若干行:
第1行只有一个正整数n(1<=n<=200),表示参赛的学生人数。

第2行至第n+1行共n行,每行有两个正整数s(0<=s<=400),g(1<=g<=6)。

其中第
i+1行的第一个数s表示第i个学生的成绩,第i+1行第二个数g表示第i个学生的的年级。

[输出]
输出文件paiming.out有n行,每行只有一个正整数,其中第i行的数k表示排第i名的学生前面有k个学生的排名比他(她)高,且年级比他(她)低。

[样例输入]
5
300 5
200 6
350 4
400 6
250 5
[样例输出]
1
1
3
[数据限制]
50%的数据,每个学生的成绩互不相同
种树(trees.pas)
【问题描述】
一条街的一边有几座房子。

因为环保原因居民想要在路边种些树。

路边的地区被分割成块,并被编号成1..N。

每个部分为一个单位尺寸大小并最多可种一棵树。

每个居民想在门前种些树并指定了三个号码B,E,T。

这三个数表示该居民想在B和E之间最少种T棵树。

当然,B≤E,居民必须记住在指定区不能种多于区域地块数的树,所以T≤E-B+l。

居民们想种树的各自区域可以交叉。

你的任务是求出能满足所有要求的最少的树的数量。

写一个程序完成以下工作:
* 从trees.in读入数据
* 计算最少要种树的数量和位置
* 把结果写到trees.out
【输入】
第一行包含数据N,区域的个数(0<N≤30000);
第二行包含H,房子的数目(0<H≤5000);
下面的H行描述居民们的需要:B E T,0<B≤E≤30000,T≤E-B+1。

【输出】
输出文件第一行写有树的数目,下面的行包括所有树的位置,相邻两数之间用一个空格隔开。

【样例】
trees.in trees.out
9 5
4 1 4
5 8 9
1 4 2
4 6 2
8 9 2
3 5 2
NBA总冠军(nba.pas/c/cpp)
【问题描述】
又要考试了,Ljw决定放松一下,就打开电视,看见了篮球赛,他立即想到了每年的NBA 总冠军队伍。

由于复习紧张,他只记起了一部分,记忆的内容是正确的,可能不是按时间顺序排列的,记忆的内容可能有重复。

现在请求学过编程的你帮助Ljw,按时间依次输出总冠军的球队(不能重复)。

(NBA 从1947A.D到2009A.D)
【输入】
输入文件nba.in的第一行是一个整数n(0<n<50)。

接下来的n行,每行先是城市名(由大到小写字母、空格组成),后是时间(由数字组成)二者之间用空格隔开。

【输出】
输出文件nba.out共n行,即排序后的NBA总冠军队伍。

每行先是时间,后是城市名。

【输入输出样例】
机器翻译(translate.pas/c/cpp)
【问题描述】
小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。

这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。

对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。

假设内存中有M个单元,每单元能存放一个单词和译义。

每当软件将一个新单词存入内存前,如果当前内存中已存入的单词数不超过M−1,软件会将新单词存入一个未使用的内存单元;若内存中已存入M 个单词,软件会清空最早进入内存的那个单词,腾出单元来,存放新单词。

假设一篇英语文章的长度为N 个单词。

给定这篇待译文章,翻译软件需要去外存查找多少次词典?假设在翻译开始前,内存中没有任何单词。

【输入】
输入文件名为translate.in,输入文件共2 行。

每行中两个数之间用一个空格隔开。

第一行为两个正整数M 和N,代表内存容量和文章的长度。

第二行为N 个非负整数,按照文章的顺序,每个数(大小不超过1000)代表一个英文单词。

文章中两个单词是同一个单词,当且仅当它们对应的非负整数相同。

【输出】
输出文件translate.out 共1 行,包含一个整数,为软件需要查词典的次数。

【输入输出样例1】
translate.in
3 7
1 2 1 5 4 4 1
translate.out
5
【输入输出样例 1 说明】
整个查字典过程如下:每行表示一个单词的翻译,冒号前为本次翻译后的内存状况:
空:内存初始状态为空。

1. 1:查找单词1 并调入内存。

2. 1 2:查找单词2 并调入内存。

3. 1 2:在内存中找到单词1。

4. 1 2 5:查找单词5 并调入内存。

5. 2 5 4:查找单词4 并调入内存替代单词1。

6. 2 5 4:在内存中找到单词4。

7. 5 4 1:查找单词1 并调入内存替代单词2。

共计查了5 次词典。

【输入输出样例2】
translate.in
2 10
8 824 11 78 11 78 11 78 8 264
translate.out
6
【数据范围】
对于10%的数据有M=1,N≤5。

对于100%的数据有0<M≤100,0<N ≤1000。

奖品(jiangpin.pas/c/cpp)
[问题描述]
托塔李天王的三太子那吒,本领高强,他要赶在奥林匹克运动会之际,开一个头脑奥林匹克比赛,获胜者的奖品就是经过提炼后的“氦-3”晶结体;该物质在月球上大量存在,是一种无色、无味的氦气同位素,它在核聚变研究中有重要作用。

氦-3还是一种绝对清洁的能源,因为它本身不带放身性,因此不会产生任何放射性废料。

可是如果从月球上将该晶体运回地球呢?那吒说:用我的肚兜吧!当然他的肚兜易受太阳风等因素的影响,载重量不能超过k(1<=n<=100000),超过这个值,肚兜就不会飞了;这个k值那吒会告诉你的,同时还会告诉你每一个晶体的重量。

你的任务是使这个肚兜一次能运回更多的晶体。

[输入]
输入文件jiangpin.in有两行
第一行有两个正整数n和k,用一个空格隔开。

表示有n个晶体,肚兜最大载重量为k。

第二行有n个不超过10000的正整数,分别表示n个晶体的重量,数与数之间用一个空格隔开。

[输出]
输出文件jiangpin.out只有一行,该行只有一个正整数,表示那吒的肚兜一次能运回的晶体重量的最大值。

[样例输入]
5 15
2 4 4 8 10
[样例输出]
14
[数据限制]
40%的数据:1<=n<=20
100%的数据:1<=n<=100。

相关文档
最新文档