NOIP2016提高组复赛试题(Day1+Day2)

第22 届全国青少年信息学奥林匹克联赛

2016

提高组(复赛)第一

竞赛时间:2016 年11 月19 日 8:30 ∼ 12:00

提交源程序文件名

编译选项

注意事项:

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

2. 除非特殊说明,结果比较方式均为忽略行末空格及文末回车的全文比较。

3. 中函数()的返回值类型必须是,程序正常结束时的返回值必须是0。

4. 全国统一评测时采用的机器配置为: () x2 240 ,2.8,内存4G,上述时限以此配置为准。

5. 只提供格式附加样例文件。

6. 评测在下进行。

7. 编译时不打开任何优化选项。

玩具谜题()

【问题描述】

小南有一套可爱的玩具小人,它们各有不同的职业。

有一天,这些玩具小人把小南的眼镜藏了起来。小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外。如下图:

这时告诉小南一个谜题:“眼镜藏在我左数第3 个玩具小人的右数第1 个玩具小人的左数第2 个玩具小人那里。”

小南发现,这个谜题中玩具小人的朝向非常关键,因为朝内和朝外的玩具小人的左右方向是相反的:面朝圈内的玩具小人,它的左边是顺时针方向,右边是逆时针方向;而面向圈外的玩具小人,它的左边是逆时针方向,右边是顺时针方向。

小南一边艰难地辨认着玩具小人,一边数着:

“朝内,左数第3 个是。

“朝外,右数第1 个是。

“朝外,左数第2 个是。

“所以眼镜藏在这里!”

虽然成功找回了眼镜,但小南并没有放心。如果下次有更多的玩具小人藏他的眼镜,或是谜题的长度更长,他可能就无法找到眼镜了。所以小南希望你写程序帮他解决类似的谜题。这样的谜题具体可以描述为:

有n 个玩具小人围成一圈,己知它们的职业和朝向。现在第 1 个玩具小人告诉小南一个包含m 条指令的谜题,其中第i 条指令形如

“左数/右数第个玩具小人”。你需要输出依次数完这些指令后,到达的玩具小人的职业。

【输入格式】

从文件中读入数据。

输入的第一行包含两个正整数,表示玩具小人的个数和指令的

条数。

接下来n 行,每行包含一个整数和一个字符串,以逆时针为顺

序给出每个玩具小人的朝向和职业。其中0 表示朝向圈内,1 表示

朝向圈外。保证不会出现其他的数。字符串长度不超过10 且仅由小

写字母构成,字符串不为空,并且字符串两两不同。整数和字符串之

间用一个空格隔开。

接下来m 行,其中第i 行包含两个整数 , ,表示第i 条指令。若= 0 ,表示向左数个人;若= 1 ,表示向右数个人。保证

不会出现其他的数,1 ≤< n。

【输出格式】

输出到文件中。输出一个字符串,表示从第一个读入的小人开始,依次数完m条指令后到达的小人的职业。

【样例 1 输入】

7 3

1

1

1

0 3

1 1

0 2

【样例 1 输出】

【样例 1 说明】

这组数据就是【题目描述】中提到的例子。

【样例 2 输入】

10 10

1 c

0 r

0 p

1 d

1 e

1 m

1 t

1 y

1 u

0 v

1 7

1 1

1 4

0 5

0 3

0 1

1 6

1 2

0 8

0 4

【样例 2 输出】

y

【子任务】

子任务会给出部分测试数据的特点。如果你在解决题目中遇到了困难,可以尝试只解决一部分测试数据。

每个测试点的数据规模及特点如下表:

其中一些简写的列意义如下:

●全朝内:若为“√”,表示该测试点保证所有的玩具小人都朝向

圈内;

●全左数:若为“√”,表示该测试点保证所有的指令都向左数,即

对任意的1 ≤ i ≤ m, = 0 ;

● = 1 :若为“√”,表示该测试点保证所有的指令都只数1个,

即对任意的1 ≤ i ≤ m,= 1 ;

●职业长度为1:若为“√”,表示该测试点保证所有玩具小人的职

业一定是一个长度为 1 的字符串。

天天爱跑步()

【问题描述】

小 C 同学认为跑步非常有趣,于是决定制作一款叫做《天天爱跑步》的游戏。

《天天爱跑步》是一个养成类游戏,需要玩家每天按时上线,完成打卡任务。

这个游戏的地图可以看作一棵包含n 个结点和n − 1 条边的树,每条边连接两个结点,且任意两个结点存在一条路径互相可达。树上

结点编号为从1 到n 的连续正整数。

现在有m 个玩家,第i 个玩家的起点为,终点为。每天打

卡任务开始时,所有玩家在第 0 秒同时从自己的起点出发,以每

秒跑一条边的速度,不间断地沿着最短路径向着自己的终点跑去,跑到终点后该玩家就算完成了打卡任务。(由于地图是一棵树,所以

每个人的路径是唯一的)

小 C 想知道游戏的活跃度,所以在每个结点上都放置了一个观

察员。在结点j 的观察员会选择在第秒观察玩家,一个玩家能

被这个观察员观察到当且仅当该玩家在第秒也正好到达了结点

j 。小C 想知道每个观察员会观察到多少人?

注意:我们认为一个玩家到达自己的终点后该玩家就会结束游戏,他不能等待一段时间后再被观察员观察到。即对于把结点j 作为终点的玩家:若他在第秒前到达终点,则在结点j 的观察员不能观察到该玩家;若他正好在第秒到达终点,则在结点j 的观察员可以观察到这个玩家。

【输入格式】

从文件中读入数据。

第一行有两个整数n 和m 。其中n 代表树的结点数量,同时也是观察员的数量,m 代表玩家的数量。

接下来n − 1 行每行两个整数u 和v ,表示结点u 到结点v 有一条边。

接下来一行n 个整数,其中第j 个整数为,表示结点j 出现观察员的时间。

接下来m 行,每行两个整数和,表示一个玩家的起点和终点。

对于所有的数据,保证1 ≤ , ≤ n ,0 ≤ ≤ n。

【输出格式】

输出到文件中。

输出1 行n 个整数,第j 个整数表示结点j 的观察员可以观察到多少人。

【样例 1 输入】

6 3

2 3

1 2

1 4

4 5

4 6

0 2 5 1 2 3

1 5

1 3

2 6

【样例 1 输出】

2 0 0 1 1 1

【样例 1 说明】

= 0 ,故只有起点为1 号点的玩家才会被观察对于1 号点,W

1

到,所以玩家1 和玩家2 被观察到,共2 人被观察到。

对于 2 号点,没有玩家在第 2 秒时在此结点,共 0 人被观察到。

对于 3 号点,没有玩家在第 5 秒时在此结点,共 0 人被观察到。

对于 4 号点,玩家 1 被观察到,共 1 人被观察到。

对于 5 号点,玩家 1 被观察

到,共 1 人被观察到。

对于 6 号点,玩家 3 被观察

到,共 1 人被观察到。

【样例 2 输入】

5 3

1 2

2 3

2 4

1 5

0 1 0 3 0

3 1

1 4

5 5

【样例 2 输出】

1 2 1 0 1

【子任务】

每个测试点的数据规模及特点如下表所示。提示:数据范围的个位上的数字可以帮助判断是哪一种数据类型。

【提示】

如果你的程序需要用到较大的栈空间(这通常意味着需要较深层数的递归),请务必仔细阅读选手目录下的文档,以了解在最终评测时栈空间的限制与在当前工作环境下调整栈空间限制的方法。

换教室()

【问题描述】

对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际

情况申请合适的课程。

在可以选择的课程中,有 2n节课程安排在n个时间段上。在第i ( 1 ≤i ≤ n )个时间段上,两节内容相同的课程同时在不同的地点进行,其中,牛牛预先被安排在教室上课,而另一节课程在教室

进行。

在不提交任何申请的情况下,学生们需要按时间段的顺序依次完

成所有的n 节安排好的课程。如果学生想更换第i 节课程的教室,

则需要提出申请。若申请通过,学生就可以在第i 个时间段去教室

上课,否则仍然在教室上课。

由于更换教室的需求太多,申请不一定能获得通过。通过计算,牛牛发现申请更换第i节课程的教室时,申请被通过的概率是一个

己知的实数,并且对于不同课程的申请,被通过的概率是互相独立的。

学校规定,所有的申请只能在学期开始前一次性提交,并且每个

人只能选择至多 m 节课程进行申请。这意味着牛牛必须一次性决定

是否申请更换每节课的教室,而不能根据某些课程的申请结果来决

定其他课程是否申请;牛牛可以申请自己最希望更换教室的m 门课程,也可以不用完这m 个申请的机会,甚至可以一门课程都不申请。

因为不同的课程可能会被安排在不同的教室进行,所以牛牛需要

利用课间时间从一间教室赶到另一间教室。

牛牛所在的大学有v 个教室,有e 条道路。每条道路连接两间

教室,并且是可

以双向通行的。

由于道路的长度和拥堵程度不同,通过不同的道路耗费的体力可能会有所不同。当第i ( 1 ≤i ≤n − 1 )节课结束后,牛牛就

会从这节课的教室出发,选择一条耗费体力最少的路径前往下一节课

的教室。现在牛牛想知道,申请哪几门课程可以使他因在教室间移动

耗费的体力值的总和的期望值最小,请你帮他求出这个最小值。

现在牛牛想知道,申请哪几门课程可以使他因在教室间移动耗费

的体力值的总和的期望值最小,请你帮他求出这个最小值。

【输入格式】

从文件中读入数据。

第一行四个整数n, m, v, e 。n 表示这个学期内的时间段的数量;m 表示牛牛最多可以申请更换多少节课程的教室;v 表示牛牛学校里教室的数量;e 表示牛牛的学校里道路的数量。

第二行n 个正整数,第i(1 ≤i ≤n )个正整数表示,即第i个时间段牛牛被安排上课的教室;保证1 ≤≤v 。

第三行n 个正整数,第i ( 1 ≤i ≤n )个正整数表示,即第i 个时间段另一间上同样课程的教室;保证1 ≤≤v 。

第四行n 个实数,第i (1 ≤i ≤n )个实数表示,即牛

牛申请在第i 个时间段更换教室获得通过的概率。保证0 ≤≤

1 。

接下来e 行,每行三个正整数,,,表示有一条双向道路连接教室, ,通过这条道路需要耗费的体力值是;保证1 ≤ , ≤v ,1 ≤≤ 100 。

保证1 ≤n ≤ 2000 ,0 ≤m ≤ 2000,1 ≤v ≤ 300 ,0 ≤e ≤ 90000 。

保证通过学校里的道路,从任何一间教室出发,都能到达其他所有的教室。

保证输入的实数最多包含3 位小数。

【输出格式】

输出到文件中。

输出一行,包含一个实数,四舍五入精确到小数点后恰好 2 位,

表示答案。你的输出必须和标准输出完全一样才算正确。

测试数据保证四舍五入后的答案和准确答案的差的绝对值不大于

4×10-3 。(如果你不知道什么是浮点误差,这段话可以理解为:对

于大多数的算法,你可以正常地使用浮点数类型而不用对它进行特殊

的处理)

【样例 1 输入】

3 2 3 3

2 1 2

1 2 1

0.8 0.2 0.5

1 2 5

1 3 3

2 3 1

【样例 1 输出】

2.80

【样例 1 说明】

所有可行的申请方案和期望收益如下表:

【样例 2】

见选手目录下的2 与2。

【提示】

1. 道路中可能会有多条双向道路连接相同的两间教室。也有可能有道路两端连接的是同一间教室。

2. 请注意区分n, m, v, e 的意义,n 不是教室的数量,m 不是道路的数量。

【子任务】

特殊性质1:图上任意两点,,≠间,存在一条耗费体力最少的路径只包含一条道路。

特殊性质2:对于所有的1 ≤i ≤n ,= 1 。

第22 届全国青少年信息学奥林匹克联赛

2016

提高组(复赛)第二试

竞赛时间:2016 年11 月20 日8:30 ∼ 12:00

提交源程序文件名

编译选项

注意事项:

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

2. 除非特殊说明,结果比较方式均为忽略行末空格及文末回车的全文比较。

3. 中函数()的返回值类型必须是,程序正常结束时的返回值

必须是0。

4. 全国统一评测时采用的机器配置为: () x2 240 , 2.8,内存4G,上述时限以此配置为准。

5. 只提供格式附加样例文件。

6. 评测在下进行。

7. 编译时不打开任何优化选项。

i 组合数问题()

【问题描述】

组合数表示的是从n个物品中选出m个物品的方案数。举

个例子,从(1, 2, 3)三个物品中选择两个物品可以有(1, 2),(1,

3),(2, 3)这三种选择方法。根据组合数的定义,我们可以给出计算

组合数的一般公式:

其中n! = 1 × 2 ×···×n 。

小葱想知道如果给定n, m 和k ,对于所有的0 ≤i ≤n, 0 ≤

j ≤ (i, m) 有多少对(i, j) 满足是k 的倍数。

【输入格式】

从文件中读入数据。

第一行有两个整数t, k ,其中t 代表该测试点总共有多少组

测试数据,k 的意义见【问题描述】。

接下来t 行每行两个整数n, m ,其中n, m 的意义见【问题描述】。

【输出格式】

输出到文件中。

t行,每行一个整数代表所有的0 ≤i ≤n, 0 ≤j ≤ (i, m) 中有多少对(i, j) 满足是k 的倍数。

【样例 1 输入】

1 2

3 3

【样例 1 输出】

1

【样例 1 说明】

在所有可能的情况中,只有= 2 是2 的倍数。

【样例 2 输入】2 5

4 5

6 7

【样例 2 输出】0

7

【子任务】

NOI提高组C++试题

第十九届全国青少年信息学奥林匹克联赛初赛 提高组C++语言试题 竞赛时间:2013 年10 月13 日14:30~16:30 选手注意: ✍试题纸共有12 页,答题纸共有2 页,满分100 分。请在答题纸上作答,写在试题纸上的一律无效。 ✍不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。 一、单项选择题(共15 题,每题1.5 分,共计22.5 分;每题有且仅有一个正确选项) 1. 一个32 位整型变量占用()个字节。 A. 4 B. 8 C. 32 D. 128 2. 二进制数11.01 在十进制下是()。 A. 3.25 B. 4.125 C. 6.25 D. 11.125 3. 下面的故事与()算法有着异曲同工之妙。 从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:?从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事....’? A. 枚举 B. 递归 C. 贪心 D. 分治 4. 1948 年,()将热力学中的熵引入信息通信领域,标志着信息论研究的开端。 A. 冯·诺伊曼(John von Neumann) B. 图灵(Alan Turing) C. 欧拉(Leonhard Euler) D. 克劳德·香农(Claude Shannon) 5. 已知一棵二叉树有2013 个节点,则其中至多有()个节点有2 个子节点。 A. 1006 B. 1007 C. 1023 D. 1024 6. 在一个无向图中,如果任意两点之间都存在路径相连,则称其为连通图。右图是一个 有5 个顶点、8 条边的连通图。若要使它不再是连通图,至少要删去其中的() 条边。

noip普及组复赛模拟试题12答案

【试题描述】 读入二行整数,然后程序要完成如下的操作: 第一步将2行数合并在一起, 第二步将合并好的数由大到小排序, 第三步重新排列,从第一个数起开始编号,然后将奇数号上的数(样例中的13,9,5)从前向后排,偶数号上的数(样例中的12,7,4)从后往前排。 第四步计算,将排好的数,第一个+第二个数的2倍+第三个数的3倍+… 第五步:输出计算的结果。 【输入描述】 第一行是一个整数 n(1≤n≤10), 第二行有n个整数,整数范围在1~100之间,数与数之间空格隔开。 第三行是一个整数 m(1≤m≤10), 第四行有m个整数,整数范围在1~100之间,数与数之间空格隔开。 【输出描述】 一个整数(最后计算的结果)。 【输入样例】 4 12 4 5 9 2 13 7 【输出样例】 169 【解题提示】 样例说明: 第一步合并后为:12 4 5 9 13 7 第二步上例中的数成为:13 12 9 7 5 4 第三步得到:13 9 5 4 7 12 第四步计算后为:13+2×9+3×5+4×4+5×7+6×12=169 最后输出 169 【试题来源】 2008年江苏省小学生信息学(计算机)奥赛 program ex1731; var m,n,i,j,s,t,b1,b2:integer; a,b,c:array[1..20] of integer; sum:longint; begin readln(n); for i:=1 to n do read(a[i]); readln(m); for i:=1 to m do read(a[i+n]); s:=m+n; for i:=1 to s-1 do for j:=i+1 to s do if a[i]

NOIP提高组初赛历年试题及答案阅读题篇

NOIP提高组初赛历年试题及答案阅读题篇 阅读程序写结果(共4 题,每题8 分,共计32 分) 阅读程序的最好方法并非是依次从头到尾。程序不像迷语,我们无法从末尾几页找到答案,也不像一本引人入胜的书籍,只需直接翻到褶皱最多的那几页,我们就能找到最精彩的片断。因此我们在阅读程序时,最好逐一考察研究每一段代码,搞清楚每一段代码的来龙去脉,理解每一段代码在程序中所起的作用,进而形成一个虚拟的程序结构,并以此为基础来进行阅读。 1、分层读:高层入手,逐层深入,正确理解程序。 2、写注解:固化、总结、提炼已有的理解成果。 3、先模拟:根据代码顺序跟踪变量,模拟运算。 4、找规律:先模拟几次循环后,找出背后的规律。 5、看功能:从代码结构和运算结果判断程序功能。 6、猜算法:有时不知道算法,通过结构和函数猜一猜。 7、换方法:了解程序本质后,换一个熟悉的方法试试。 对大多数人来说,写程序是令人开心的一件事情,读别人的程序却很痛苦,很恐惧,宁愿自己重写一遍。其实读到好的程序,就像读一篇美文,令人心旷神怡,豁然开朗,因为这背后是一个人的思维,甚至整个人生。 阅读别人的程序不仅可以巩固自己的知识,启发自己的思维,提升自己的修养,让你收获满满,其实,这也是在学习、在竞赛、在工作中的最重要、最常用的基本功。 如果说写程序是把自己的思维转化为代码,读程序就是把代码转化为你理解的别人的思维。当你阅读程序时有强烈的代入感,像演员一样,真正进入到编剧的精神世界,面部表情也随之日渐丰富起来。祝贺你!你通关了! 总之,看得多,码得多,拼得多,你就考得多…… NOIP2011-1. #include #include using namespace std;

noip普及组复赛模拟试题24

29 1.质因数分解(prime.cpp/c/pas) 【问题描述】已知正整数n 是两个不同的质数 的乘积,试求出较大的那个质数。 【输入】输入文件名为prime.in。 输入只有一行,包含一个正整数n。 【输出】输出文件名为prime.out。 输出只有一行,包含一个正整数p,即较大的那个质数。 【输入输出样例】 prime.in prime.out 21 7 【数据范围】对于60%的数据,6 ≤ n ≤ 1000。 对于100%的数据,6 ≤ n ≤ 2*109。 2. 设有一个数组A:array [0..N-1] of integer;存放的元素为0~N-1(1

4. GF同学和猫咪得到了一个特别的玩具,这个玩具由n个金属环(编号为 1---n),和m条绳索组成,每条绳索连接两个不同的金属环,并且长度相同。GF左手拿起金属环L,猫咪右手(或者说:爪)拿起金属环R(L不等于R),然后尽量的向两边拉,他希望选择合适的L和R,使得被拉紧的绳索尽量的多。注:如果像样例那样1-2-4-3-5-6-1构成了一个环,我们认为拉1和3时只能拉紧一边(1-2-4-3或3-5-6-1)而不算全部拉紧。通俗地说,也就是当两个环之间有几个绳索数相等的连接方法时,只算其中一条连接方法拉紧,不算全部拉紧。 输入格式InputFormat 第一行包含两个正整数n,m 接下来的m行包含两个正整数a,b,表示有一条绳索连接了a和b的绳索。n<=100 输出格式OutputFormat 仅包含一个整数,表示最多能拉紧的绳索数。 样例输入SampleInput 6 61 21 62 46 54 35 3 样例输出SampleOutput 3

NOIP2016提高组复赛试题(Day1+Day2)

第22 届全国青少年信息学奥林匹克联赛 2016 提高组(复赛)第一 试 竞赛时间:2016 年11 月19 日 8:30 ~ 12:00 提交源程序文件名 编译选项 注意事项: 1. 文件名(程序名和输入输出文件名)必须使用英文小写。 2. 除非特殊说明,结果比较方式均为忽略行末空格及文末回车的全文比较。 3. 中函数()的返回值类型必须是,程序正常结束时的返回值必须是0。 4. 全国统一评测时采用的机器配置为: () x2 240 ,2.8,内存4G,上述时限以此配置为准。 5. 只提供格式附加样例文件。 6. 评测在下进行。 7. 编译时不打开任何优化选项。

玩具谜题() 【问题描述】 小南有一套可爱的玩具小人,它们各有不同的职业。 有一天,这些玩具小人把小南的眼镜藏了起来。小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外。如下图: 这时告诉小南一个谜题:“眼镜藏在我左数第3 个玩具小人的右数第1 个玩具小人的左数第2 个玩具小人那里。” 小南发现,这个谜题中玩具小人的朝向非常关键,因为朝内和朝外的玩具小人的左右方向是相反的:面朝圈内的玩具小人,它的左边是顺时针方向,右边是逆时针方向;而面向圈外的玩具小人,它的左边是逆时针方向,右边是顺时针方向。 小南一边艰难地辨认着玩具小人,一边数着: “朝内,左数第3 个是。 “朝外,右数第1 个是。 “朝外,左数第2 个是。 “所以眼镜藏在这里!” 虽然成功找回了眼镜,但小南并没有放心。如果下次有更多的玩具小人藏他的眼镜,或是谜题的长度更长,他可能就无法找到眼镜了。所以小南希望你写程序帮他解决类似的谜题。这样的谜题具体可以描述为: 有n 个玩具小人围成一圈,己知它们的职业和朝向。现在第 1

NOIP2016初赛普及组C++试题及答案

第二十二届全国青少年信息学奥林匹克联赛初赛 普及组 C++ 语言试题 竞赛时间 :2016 年 10 月 22 日 14:30~16:30 选手注意 : 试题纸共有 9 页 ,答题纸共有 2 页,满分 100 分。请在答题纸上作答 ,写在 试 题纸上的一律无效。 不得使用任何电子设备 (如计算器、手机、电子词典等 ) 或查阅任何书籍资 料。 一、单项选择题 (共 20 题,每题 1.5 分, 确选 项) 1. 以下不是微软公司出品的软件是 ( ) A. Powerpoint B. C. Excel D. 7. 二进制数 00101100 和 00010101 的和是 ( )。 C++ 语言试题 共计 30 分;每题有且仅有一个正 Word Acrobat Reader 2. 如果 256 种颜色用二进制编码来表示 , A. 6 B. 7 C. 至少需要 ( 8 位。 D. 3. 以下不属于无线通信技术的是 A. 蓝牙 B. WiFi )。 C. GPRS D. 以太网 4. 以下不是 A. Intel CPU 生产厂商的是 B. AMD )。 C. Microsoft D. IBM 5. 以下不是存储设备的是 ( A. 光盘 B. 磁盘 C. 固态硬盘 D. 鼠标 ,现在有一只小老鼠反复按照 的顺序循环按键 , 即 CapsLock 、 ( a 6. 如果开始时计算机处于小写输入状态 字母键A 、字母键S 和字母键D CapsLock A 、S D 、??…,屏幕上输出的第81个字符是字母 A. A B. S C. D CapsLock 、 A 、 S 、 D 、 D. A. 00101000 B. 01000001 C. 01000100 D. 00111000 8. 与二进制小数 A. 0.8 0.1 相等的八进制数是 ( B. 0.4 C. )。 0.2 D. 0.1

noip普及组复赛模拟试题34(附答案)

1.近来见习魔法师们在进行一项有关二进制数的研究,研究涉及的一个统计问题令他们大伤脑筋。问题是这样的:若将一个正整数化为二进制数,在此二进制数中,我们将数字1的个数多于数字0的个数的这类二进制数称为A类数,否则就称其为B类数。 例如:(13)10=(1101)2 其中1的个数为3,0的个数为1,则称此数为A类数; (10)10=(1010)2 其中1的个数为2,0的个数也为2,称此数为B类数; (24)10=(11000)2 其中1的个数为2,0的个数为3,则称此数为B类数; 程序要求:求出X~Y之中,全部A、B两类数的个数。 样例输入10 20 输出 5 6 Var X,Y,i,j,la,lb:longint; procedure ze(m:longint); var l0,l1:longint; begin l0:=0;l1:=0; while m<>0 do begin if m mod 2=0 then l0:=l0+1 else l1:=l1+1; m:=m div 2;end; if l1>l0 then j:=1 else j:=0; end; begin la:=0;lb:=0; readln(x,y); for i:=x to y do begin ze(i); if j=1 then la:=la+1 else if j=0 then lb:=lb+1; end; writeln(la);writeln(lb); end. 输入50 100 输出28 23 输入200 400 输出110 91 输入1000 2000输出615 386 输入40000 50000 输出4818 5183 老师给笑笑布置了一份作业,笑笑不知如何解决。老师给了一串很长的数列,要求从中找出连续的一段来使的总和最大。 【输入文件】: 第一行包含一个整数n,表示数列的长度。(n<=100000) 第二行包含n个整数来描述这个数列,每个整数的的绝对值不超过1000。 【文件输出】: 文件中只有一个整数,为最大的连续段总和。 【输入样例】: 5 1 - 2 3 1 -4 【输出样例】 4 var s:array[1..10000] of longint; n,ii,t,ans:longint;

【精选资料】NOIP提高组复赛试题与简解转载

Day1 铺地毯 【问题描述】 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有n 张地毯,编号从1 到n。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。注意:在矩形地毯边界和四个顶点上的点也算被地毯覆盖。【输入】 输入文件名为 carpet.in。 输入共 n+2 行。 第一行,一个整数 n,表示总共有n 张地毯。 接下来的 n 行中,第i+1 行表示编号i 的地毯的信息,包含四个正整数a,b,g,k,每两个整数之间用一个空格隔开,分别表示铺设地毯的左下角的坐标(a,b)以及地毯在x轴和y 轴方向的长度。 第 n+2 行包含两个正整数x 和y,表示所求的地面的点的坐标(x,y)。 【输出】 输出文件名为 carpet.out。 输出共 1 行,一个整数,表示所求的地毯的编号;若此处没有被地毯覆盖则输出-1。 【输入输出样例 1】 【输入输出样例说明】 如下图,1 号地毯用实线表示,2 号地毯用虚线表示,3 号用双实线表示,覆盖点(2,2)的最上面一张地毯是3 号地毯。

【输入输出样例 2】 【输入输出样例说明】 如上图,1 号地毯用实线表示,2 号地毯用虚线表示,3 号用双实线表示,点(4,5)没有被地毯覆盖,所以输出-1。 【数据范围】 对于 30%的数据,有n≤2; 对于 50%的数据,0≤a, b, g, k≤100; 对于 100%的数据,有0≤n≤10,000,0≤a, b, g, k≤100,000。 【一句话题意】 给定n个按顺序覆盖的矩形,求某个点最上方的矩形编号。 【考察知识点】 枚举 【思路】 好吧我承认看到图片的一瞬间想到过二维树状数组和二维线段树。

第十六届全国青少年信息学奥林匹克联赛复赛试题

第十六届全国青少年信息学奥林匹克联赛复赛试题 (NOIP2010提高组) NOIP2010提高组复赛第一题机器翻译(Trasnlate) 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。 假设内存中有 M 个单元,每单元能存放一个单词和译义。每当软件将一个新单词存入内存前,如果当前内存中已存入的单词数不超过 M-1,软件会将新单词存入一个未使用的内存单元;若内存中已存入 M 个单词,软件会清空最早进入内存的那个单词,腾出单元来,存放新单词。 假设一篇英语文章的长度为 N个单词。给定这篇待译文章,翻译软件需要去外存查找多少次词典?假设在翻译开始前,内存中没有任何单词。 【输入】输入文件名为 translate.in,输入文件共 2 行。每行中两个数之间用一个空格隔开。第一行为两个正整数 M和 N,代表内存容量和文章的长度。第二行为 N 个非负整数,按照文章的顺序,每个数(大小不超过 1000)代表一个英文单词。文章中两个单词是同一个单词,当且仅当它们对应的非负整数相同。 【输出】输出文件 translate.out 共1行,包含一个整数,为软件需要查词典的次数。【数据范围】对于 10%的数据有 M=1,N≤5。00%的数据有 0m then b[a[h-m]]:=false; end;//for writeln(sum); end.//main

noip2017提高组试题(day1+day2) Word版

CCF 全国信息学奥林匹克联赛(NOIP2017)复赛 提高组 day1 (请选手务必仔细阅读本页内容) 1、文件名(程序名和输入输出文件名)必须使用英文小写。 2、C/C++中函数 main()的返回值类型必须是 int,程序正常结束时的返回值必须是 0。 3、全国统一评测时采用的机器配置为:CPU AMD Athlon(tm) II x2 240 processor,2.8GHz, 内存 4G,上述时限以此配置为准。 4、只提供 Linux 格式附加样例文件。 5、提交的程序代码文件的放置位置请参照各省的具体要求。 6、特别提醒:评测在当前最新公布的 NOI Linux 下进行,各语言的编译器版本以其为准。

1.小凯的疑惑 (math.cpp/c/pas) 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在小凯无法准确支付的商品。 【输入格式】 输入文件名为math.in。 输入数据仅一行,包含两个正整数 a 和 b,它们之间用一个空格隔开,表示小凯手中金币的面值。 【输出格式】 输出文件名为math.out。 输出文件仅一行,一个正整数 N,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。 【输入输出样例 1】 math/math1.in math/math1.ans 【输入输出样例 1 说明】 小凯手中有面值为3 和7 的金币无数个,在不找零的前提下无法准确支付价值为1、2、4、5、8、11 的物品,其中最贵的物品价值为 11,比 11 贵的物品都能买到,比如: 12 = 3 * 4 + 7 * 0 13 = 3 * 2 + 7 * 1 14 = 3 * 0 + 7 * 2 15 = 3 * 5 + 7 * 0 …… 【输入输出样例 2】 见选手目录下的math/math2.in 和math/math2.ans。 【数据规模与约定】 对于30%的数据:1 ≤ a,b ≤ 50。 对于60%的数据:1 ≤ a,b ≤ 10,000。 对于100%的数据:1 ≤ a,b ≤ 1,000,000,000。

最新noip提高组试题(day1+day2) word版

精品资料 n o i p提高组试题(d a y1+d a y2)w o r d 版 ........................................

CCF 全国信息学奥林匹克联赛(NOIP2017)复赛 提高组 day1 (请选手务必仔细阅读本页内容) 一.题目概况 注意事项: 1、文件名(程序名和输入输出文件名)必须使用英文小写。 2、C/C++中函数 main()的返回值类型必须是 int,程序正常结束时的返回值必须是 0。

3、全国统一评测时采用的机器配置为:CPU AMD Athlon(tm) II x2 240 processor,2.8GHz, 内存 4G,上述时限以此配置为准。 4、只提供 Linux 格式附加样例文件。 5、提交的程序代码文件的放置位置请参照各省的具体要求。 6、特别提醒:评测在当前最新公布的 NOI Linux 下进行,各语言的编译器版本以其为准。

【问题描述】 1.小凯的疑惑(math.cpp/c/pas) 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在小凯无法准确支付的商品。 【输入格式】 输入文件名为math.in。 输入数据仅一行,包含两个正整数a 和b,它们之间用一个空格隔开,表示小凯手中金币的面值。 【输出格式】 输出文件名为math.out。 输出文件仅一行,一个正整数N,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。 【输入输出样例1】 math/math1.in math/math1.ans 【输入输出样例1 说明】 小凯手中有面值为3 和7 的金币无数个,在不找零的前提下无法准确支付价值为1、2、4、5、8、11 的物品,其中最贵的物品价值为11,比11 贵的物品都能买到,比如: 12 = 3 * 4 + 7 * 0 13 = 3 * 2 + 7 * 1 14 = 3 * 0 + 7 * 2 15 = 3 * 5 + 7 * 0 …… 【输入输出样例2】 见选手目录下的math/math2.in 和math/math2.ans。 【数据规模与约定】 对于30%的数据: 1 ≤ a,b ≤ 50。 对于60%的数据: 1 ≤ a,b ≤ 10,000。 对于100%的数据:1 ≤ a,b ≤ 1,000,000,000。

noip提高组复赛知识点

Noip提高组复赛知识点 1. 简介 NOIP(National Olympiad in Informatics in Provinces)是中国计算机学会主办 的全国性计算机竞赛。它分为初赛和复赛两个阶段,复赛则进一步分为提高组和普及组。本文将重点介绍NOIP提高组复赛的知识点。 2. 复赛知识点 2.1 数据结构 在NOIP提高组复赛中,对数据结构的理解和应用是非常重要的。以下是一些 常见的数据结构及其应用: 2.1.1 数组 数组是一种线性数据结构,可以在O(1)的时间复杂度内访问任意位置的元素。在复赛中,经常需要使用数组来解决一些简单的问题,如统计字符出现次数、记录中间结果等。 2.1.2 链表 链表是一种动态数据结构,它通过指针将多个节点连接起来。在复赛中,链表 常常用于实现一些特定的数据结构,如队列、栈等。 2.1.3 栈和队列 栈和队列是两种基本的数据结构。栈是一种后进先出(LIFO)的数据结构,而 队列是一种先进先出(FIFO)的数据结构。它们在复赛中的应用非常广泛,如深 度优先搜索(DFS)和广度优先搜索(BFS)等算法中常常使用栈和队列来辅助实现。 2.1.4 树和图 树和图是两种重要的非线性数据结构。树是一种层次结构,图是一种由节点和 边组成的网络结构。在复赛中,树和图常常用于解决一些复杂的问题,如最短路径、最小生成树等。 2.2 算法和技巧 在NOIP提高组复赛中,算法和技巧的掌握是至关重要的。以下是一些常见的 算法和技巧:

2.2.1 动态规划 动态规划是一种将复杂问题分解成简单子问题的方法,通过保存子问题的解来 避免重复计算。在复赛中,动态规划常常用于解决一些涉及最优化问题的算法。 2.2.2 贪心算法 贪心算法是一种每一步都选择当前最优解的算法。在复赛中,贪心算法常常用 于解决一些涉及最优解问题的算法,如最小生成树问题、最短路径问题等。 2.2.3 搜索算法 搜索算法是一种通过遍历问题的所有可能解空间来寻找解的方法。在复赛中, 搜索算法常常用于解决一些复杂的问题,如深度优先搜索(DFS)、广度优先搜索(BFS)等。 2.2.4 排序算法 排序算法是一种将一组数据按照某种特定顺序排列的算法。在复赛中,排序算 法常常用于解决一些需要对数据进行排序的问题,如查找中位数、查找第K大元 素等。 2.3 编程语言和工具 在NOIP提高组复赛中,掌握一种编程语言和一些常用的工具是必要的。以下 是一些常见的编程语言和工具: 2.3.1 C/C++ C/C++是NOIP竞赛中最常用的编程语言之一,它具有高效性和灵活性。掌握 C/C++语言的语法和常用库函数对于参加复赛非常重要。 2.3.2 Python Python是一种简单易学的编程语言,它具有丰富的第三方库和强大的数据处 理能力。在复赛中,Python常常用于解决一些需要大量数据处理的问题。 2.3.3 编译器和IDE 在NOIP提高组复赛中,选择一个合适的编译器和集成开发环境(IDE)对于 编写和调试程序非常重要。常用的编译器和IDE有GCC、Clang、Visual Studio等。 3. 总结 NOIP提高组复赛涵盖了广泛的知识点,包括数据结构、算法和编程语言等。 在备战复赛时,需要系统地学习和掌握这些知识点,并通过大量的实践来提高编程能力。希望本文对复赛的准备有所帮助。

NOIP2013提高组复赛试题day1+day2

全国信息学奥林匹克联赛(2013)复赛 提高组 1 1.转圈游戏 () 【问题描述】 n 个小伙伴(编号从 0 到 1)围坐一圈玩游戏。按照顺时针方向给 n 个位置编号,从 0 到 1。最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置,……,依此类推。 游戏规则如下:每一轮第 0 号位置上的小伙伴顺时针走到第m 号位置,第 1 号位置小伙伴走到第 1 号位置,……,依此类推,第n − m号位置上的小伙伴走到第 0 号位置,第1 号位置上的小伙伴走到第 1 号位置,……,第 1 号位置上的小伙伴顺时针走到第1 号位置。 现在,一共进行了 10k 轮,请问 x 号小伙伴最后走到了第几号位置。 【输入】 输入文件名为。 输入共 1 行,包含 4 个整数 n、m、k、x,每两个整数之间用一个空格隔开。 【输出】 输出文件名为。 输出共1 行,包含1 个整数,表示10k 轮后x 号小伙伴所在的

位置编号。 【输入输出样例】 10 3 4 5 5 【数据说明】 对于 30%的数据,0 < k < 7; 对于 80%的数据,0 < k < 107; 对于 100%的数据,1 < n< 1,000,000,0

NOIP历年复赛提高组试题(2004-2021)

NOIP历年复赛提高组试题(2004-2021)

第十届全国信息学奥林匹克分区联赛(NOIP2004)复赛试题 (提高组竞赛用时:3小时) 1、津津的储蓄计划(Save.pas/dpr/c/cpp) 【问题描述】 津津的零花钱一直都是自己管理。每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。 为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上20%还给津津。因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于100元或恰好100元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。 例如11月初津津手中还有83元,妈妈给了津津300元。津津预计11月的花销是180元,那么她就会在妈妈那里存200元,自己留下183元。到了11月月末,津津手中会剩下3元钱。 津津发现这个储蓄计划的主要风险是,存在妈妈那里的钱在年末之前不能取出。有可能在某个月的月

初,津津手中的钱加上这个月妈妈给的钱,不够这个月的原定预算。如果出现这种情况,津津将不得不在这个月省吃俭用,压缩预算。 现在请你根据2004年1月到12月每个月津津的预算,判断会不会出现这种情况。如果不会,计算到2004年年末,妈妈将津津平常存的钱加上20%还给津津之后,津津手中会有多少钱。 【输入文件】 输入文件save.in包括12行数据,每行包含一个小于350的非负整数,分别表示1月到12月津津的预算。 【输出文件】 输出文件save.out包括一行,这一行只包含一个整数。如果储蓄计划实施过程中出现某个月钱不够用的情况,输出-X,X表示出现这种情况的第一个月;否则输出到2004年年末津津手中会有多少钱。 【样例输入1】 290 230

NOIP2016年入门组复赛真题

1、手机流量 总时间限制: 1000ms 内存限制: 50MB 描述 电信公司提供了一种手机上网流量的优惠服务,用户每月可使用x兆流量,当月末未花完到流量可转到以后使用,但下月的流量不允许提前使用。已知小微在n个月内的每月已消费流量的账单,请帮助小薇计算,接下来她的n+1个月能使用多少兆流量? 输入 第一行为两个整数x(1<=x<=100)和n(1<=n<=100),分别表示每月可用流量兆数和账单上的月数,用空格分隔。 第二行是用空格分隔的n个整数,依次为n个月的每一月用去的流量兆数。(0<=月消费<=500)。 输出 一行一个整数,为第n+1月允许消费的流量兆数。 样例输入 10 3 4 6 2 样例输出

28 2、幸运整数 总时间限制: 1000ms 内存限制: 50MB 描述 小明对数字“5”和“8”非常感兴趣,认为是幸运数字,仅用幸运数字组成的整数就是幸运整数,请你帮助小明找出从5开始从小到大第k个幸运整数。 输入 仅一行包含一个正整数k(k<=300)。 输出 仅一行包含一个正整数,为第k个幸运整数。 样例输入 3 样例输出 55

3、最小最大数 总时间限制: 1000ms 内存限制: 50MB 描述 给你三个整数a、b、x,确定一个最小的整数n,使得a<=n<=b,且满足n的各位数字之和为x,再确定最大的整数m,使得a<=m<=b,同样满足m的各位之和为x。 输入 仅一行用空格隔开的三个整数:a(1<=a<=10000),b(a<=b<=10000)和 x(1<=x<=35) 输出 第一行含一个整数n,为满足题目要求的最小整数。 第二行含一个整数m,为满足题目要求的最大整数。 样例输入 1 100 4 样例输出 4 40

noip2016初赛试题

noip2016初赛试题 NOIP(全国青少年信息学奥林匹克联赛)是中国国内最重要、最有影响力的信息学奥赛之一。该赛事旨在选拔及锻炼我国青少年信息学 竞赛选手,推动信息学教育的普及和发展。NOIP2016初赛试题是该赛 事的一部分,下面将介绍该试题的一些重要信息。 1. 背景介绍 NOIP2016初赛试题是中国国内青少年信息学竞赛的初级挑战赛。 这个赛题旨在考察参赛者的算法设计能力、编程实现能力以及解题思路。试题根据信息学知识点进行设计,配有代码实现规范和输入输出 样例。 2. 题目描述 NOIP2016初赛试题包含若干个小题,每个小题涉及不同的信息学 知识点。每个小题都有自己的要求和限制条件,参赛者需要根据题目 描述进行编程实现,并根据题目要求给出正确的答案。试题的难度递增,测试了参赛者在算法理解和编码实现方面的能力。 3. 考试要求 参赛者需要使用C、C++、Pascal或Java等编程语言进行编码实现。代码需要符合编程规范,采用合理且易于理解的方法解决问题。参赛 者需要在规定时间内完成所有小题,并保证代码的正确性和高效性。 4. 评分标准

根据参赛者完成的试题数量和质量对其进行评分。试题的评分标准包括代码的正确性、程序的效率和解题思路的合理性。评委会将根据参赛者的答案和解决方法进行评分,得分高者将获得相应的奖项和荣誉。 5. 注意事项 参赛者在解答试题时需要注意以下几点: - 理解题意:仔细阅读题目描述,确保清楚题目要求和限制条件。 - 设计算法:合理设计解决问题的算法,选择适当的数据结构和算法思想。 - 编码实现:根据算法设计进行编码实现,注意代码规范和边界情况的处理。 - 测试调试:编写测试用例,验证代码的正确性并及时调试修复错误。 - 思考优化:在保证正确性的前提下,思考是否有更优的解决方法和算法思路。 通过参加NOIP初赛试题的练习和解答,参赛者能够巩固和提升自己在信息学方面的知识和技能。同时,参赛者也能够接触到更多的算法和编程问题,提高解题能力和创新思维的培养。NOIP试题是评估青少年信息学水平的重要标准,也是选拔优秀选手和培养优秀人才的有效手段。

NOIP2016信息学奥赛普及组初赛C++试题及答案-较完美版

NOIP2016信息学奥赛普及组初赛C++试题及答案-较完美版

s=s+1; 则与上述程序段修改s值的功能等价的赋值语句是( )。 A. s=a+b; B. s=a+c; C. s=s+c; D. s=b+c; 13.有以下程序: #include using namespace std; int main() { int k=4,n=0; while(n。如果L中存在xi(1xi+1>...>xn,,则称L是单峰的,

并称xi是L的“峰顶”。现在己知L是单峰的,请把a-c 三行代码补全到算法中使得算法正确找到L的峰顶。 正确的填空顺序是( )。 A.c,a,b B. c,b,a C.a,b,c D.b,a,c 15.设简单无向图G有16条边且每个顶点的度数都是2,则图G有( )个顶点。 A.10 B.12 C.8 D.16 16.有7个一模一样的苹果,放到3个一样的盘子中,一共有( )种放法。 A.7 B.8 C.21 D.37 17.下图表示一个果园灌溉系统,有A、B、C、D四个阀门,每个阀门可以打开或关上,所有管道粗细相同,以下设置阀门的方法中,可以让果树浇上水的是( )。 A.B打开,其他都关上 B.AB都打开,CD都关上C.A打开,其他都关上 D.D打开,其他都关上

NOIP2016提高组复赛试题(Day1+Day2)

第22届全国青少年信息学奥林匹克联赛 2016 提高组(复赛)第一 试 竞赛时间:2016年11月19日8:30 〜12:00 提交源程序文件名 1. 文件名(程序名和输入输出文件名)必须使用英文小写。 2. 除非特殊说明,结果比较方式均为忽略行末空格及文末回车的全文比较。 3. 中函数()的返回值类型必须是,程序正常结束时的返回值必须是0。 4. 全国统一评测时采用的机器配置为:()x2 240 , 2.8 , 内存4G,上述时限以此配置为准。 5. 只提供格式附加样例文件。 6. 评测在下进行。 7. 编译时不打开任何优化选项。 玩具谜题()

【问题描述】 小南有一套可爱的玩具小人,它们各有不同的职业。 有一天,这些玩具小人把小南的眼镜藏了起来。小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外。如下图: 这时告诉小南一个谜题:“眼镜藏在我左数第3个玩具小人的 右数第1个玩具小人的左数第2个玩具小人那里。” 小南发现,这个谜题中玩具小人的朝向非常关键,因为朝内和朝外的玩具小人的左右方向是相反的:面朝圈内的玩具小人,它的左边是顺时针方向,右边是逆时针方向;而面向圈外的玩具小人,它的左边是逆时针方向,右边是顺时针方向。 小南一边艰难地辨认着玩具小人,一边数着: “朝内,左数第3个是。 “朝外,右数第1个是。 “朝外,左数第2个是。 “所以眼镜藏在这里!” 虽然成功找回了眼镜,但小南并没有放心。如果下次有更多的玩具小人藏他的眼镜,或是谜题的长度更长,他可能就无法找到眼镜了。所以小南希望你写程序帮他解决类似的谜题。这样的谜题具体可以描述为: 有n个玩具小人围成一圈,己知它们的职业和朝向。现在第1个玩具小人告诉小南一个包含m条指令的谜题,其中第i条指令形如 “左数/ 右数第个玩具小人”。你需要输出依次数完这些指令后,到达的玩具小人的职业。

相关文档
最新文档