少儿编程NOIP2006提高组复赛试题

NOIP 2006 复赛试题 (提高组)

第十二届全国青少年信息学奥林匹克

联赛复赛试题

(NOIP2006 提高组)

竞赛时间:2006 年11 月18 日上午8:30—11:30

关于竞赛中不同语言使用限制的说明

一.关于使用Pascal 语言与编译结果的说明

1.对于Pascal 语言的程序,当使用IDE 和fpc 编译结果不一致时,以fpc 的编译结果为准。

2.允许使用数学库(uses math 子句),以及ansistring。但不允许使用编译开关(最后测试时pascal

的范围检查开关默认关闭:{$R-,Q-,S-}),也不支持与优化相关的选项。

二.关于C++语言中模板使用的限制说明

1.允许使用的部分:

标准容器中的布尔集合,迭代器,串,流。

相关的头文件:

2.禁止使用的部分:

序列:vector,list,deque

序列适配器:stack, queue, priority_queue

关联容器:map, multimap, set, multiset

拟容器:valarray

散列容器:hash_map, hash_set, hash_multimap, hash_multiset

所有的标准库算法

相关头文件:

1.能量项链

(energy.pas/c/cpp)

【问题描述】

在Mars 星球上,每个Mars 人都随身佩带着一串能量项链。在项链上有N 颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是Mars 人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果前一颗能量珠的头标记为m,尾标记为r,后一颗能量珠的头标记为r,尾标记为n,则聚合后释放的能量为m⨯r⨯n(Mars 单位),新产生的珠子的头标记为m,尾标记为n。

需要时,Mars 人就用吸盘夹住相邻的两颗珠子,通过聚合得到能量,直到项链上只剩下一颗珠子为止。显然,不同的聚合顺序得到的总能量是不同的,请你设计一个聚合顺序,使一串项链释放出的总能量最大。

例如:设N=4,4 颗珠子的头标记与尾标记依次为(2,3) (3,5) (5,10) (10,2)。我们用记号⊕表示两颗珠子的聚合操作,(j⊕k)表示第j,k 两颗珠子聚合后所释放的能量。则第4、

1 两颗珠子聚合后释放的能量为:

(4⊕1)=10*2*3=60。

这一串项链可以得到最优值的一个聚合顺序所释放的总能量为

((4⊕1)⊕2)⊕3)=10*2*3+10*3*5+10*5*10=710。

【输入文件】

输入文件energy.in 的第一行是一个正整数N(4≤N≤100),表示项链上珠子的个数。第二行是N 个用空格隔开的正整数,所有的数均不超过1000。第i 个数为第i 颗珠子的头标记(1 ≤i≤N),当i

至于珠子的顺序,你可以这样确定:将项链放到桌面上,不要出现交叉,随意指定第一颗珠子,然后按顺时针方向确定其他珠子的顺序。

【输出文件】

输出文件energy.out 只有一行,是一个正整数E(E≤2.1*109),为一个最优聚合顺序所释放的总能量。

【输入样例】

4

2 3 5 10

【输出样例】

710

2.金明的预算方案

(budget.pas/c/cpp)

【问题描述】

金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N 元钱就行”。今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属

如果要买归类为附件的物品,必须先买该附件所属的主件。每个主件可以有0 个、1 个或2 个附件。附件不再有从属于自己的附件。金明想买的东西很多,肯定会超过妈妈限定的N 元。于是,他把每件物品规定了一个重要度,分为5 等:用整数1~5 表示,第5 等最重要。他还从因特网上查到了每件物品的价格(都是10 元的整数倍)。他希望在不超过N 元(可以等于N 元)的前提下,使每件物品的价格与重要度的乘积的总和最大。

设第j 件物品的价格为v[j],重要度为w[j],共选中了k 件物品,编号依次为j1,j2,……,j k,则所求的总和为:

v[j1]*w[j1]+v[j2]*w[j2]+ …+v[j k]*w[j k]。(其中*为乘号)

请你帮助金明设计一个满足要求的购物单。

【输入文件】

输入文件budget.in 的第1 行,为两个正整数,用一个空格隔开:

N m

(其中N(<32000)表示总钱数,m(<60)为希望购买物品的个数。)

从第2 行到第m+1 行,第j 行给出了编号为j-1 的物品的基本数据,每行有3 个非负整数

v p q

(其中v 表示该物品的价格(v<10000),p 表示该物品的重要度(1~5),q 表示该物品是主件还是附件。如果q=0,表示该物品为主件,如果q>0,表示该物品为附件,q 是所属主件的编号)【输出文件】

输出文件budget.out 只有一个正整数,为不超过总钱数的物品的价格与重要度乘积的总和的最大值(<200000)。

【输入样例】

1000 5

800 2 0

400 5 1

300 5 1

400 3 0

500 2 0

【输出样例】

2200

3.作业调度方案

(jsp.pas/c/cpp)

【问题描述】

我们现在要利用m 台机器加工n 个工件,每个工件都有m 道工序,每道工序都在不同的指定的机器上完成。每个工件的每道工序都有指定的加工时间。

每个工件的每个工序称为一个操作,我们用记号j-k 表示一个操作,其中j 为1 到n 中的某个数字,为工件号;k 为1 到m 中的某个数字,为工序号,例如2-4 表示第2 个工件第4 道工序的这个操作。在本题中,我们还给定对于各操作的一个安排顺序。

例如,当n=3,m=2 时,“1-1,1-2,2-1,3-1,3-2,2-2”就是一个给定的安排顺序,即先安排第1 个工件的第1 个工序,再安排第1 个工件的第2 个工序,然后再安排第2 个工件的

第1 个工序,等等。

一方面,每个操作的安排都要满足以下的两个约束条件。

(1)对同一个工件,每道工序必须在它前面的工序完成后才能开始;

(2)同一时刻每一台机器至多只能加工一个工件。

另一方面,在安排后面的操作时,不能改动前面已安排的操作的工作状态。

由于同一工件都是按工序的顺序安排的,因此,只按原顺序给出工件号,仍可得到同样的安排顺序,于是,在输入数据中,我们将这个安排顺序简写为“1 1 2 3 3 2”。

还要注意,“安排顺序”只要求按照给定的顺序安排每个操作。不一定是各机器上的实际操作顺序。在具体实施时,有可能排在后面的某个操作比前面的某个操作先完成。

则对于安排顺序“1 1 2 3 3 2”,下图中的两个实施方案都是正确的。但所需要的总时间分别是

10 与12。

当一个操作插入到某台机器的某个空档时(机器上最后的尚未安排操作的部分也可以看作一个空档),可以靠前插入,也可以靠后或居中插入。为了使问题简单一些,我们约定:在保证约束条件(1)(2)的条件下,尽量靠前插入。并且,我们还约定,如果有多个空档可以插入,就在保证约束条件(1)(2)的条件下,插入到最前面的一个空档。于是,在这些约定下,上例中的方案一是正确的,而方案二是不正确的。

显然,在这些约定下,对于给定的安排顺序,符合该安排顺序的实施方案是唯一的,请你计算出该方案完成全部任务所需的总时间。

【输入文件】

输入文件 jsp.in 的第 1 行为两个正整数,用一个空格隔开:

m n

(其中m(<20)表示机器数,n(<20)表示工件数)

第2 行:m n 个用空格隔开的数,为给定的安排顺序。

接下来的2n 行,每行都是用空格隔开的m 个正整数,每个数不超过20。

其中前n 行依次表示每个工件的每个工序所使用的机器号,第1 个数为第1 个工序的机器号,第2 个数为第2 个工序机器号,等等。

后n 行依次表示每个工件的每个工序的加工时间。

可以保证,以上各数据都是正确的,不必检验。

【输出文件】

输出文件 jsp.out 只有一个正整数,为最少的加工时间。

【输入样例】

2 3

1 1

2

3 3 2

1 2

1 2

2 1

3 2

2 5

2 4

【输出样例】

10

4.2k进制数

(digital.pas/c/cpp)

【问题描述】

设r 是个2k进制数,并满足以下条件:

(1)r 至少是个2 位的2k进制数。

(2)作为2k进制数,除最后一位外,r 的每一位严格小于它右边相邻的那一位。

(3)将r 转换为2 进制数q 后,则q 的总位数不超过w。

在这里,正整数k(1≤k≤9)和w(k

问:满足上述条件的不同的r 共有多少个?

我们再从另一角度作些解释:设S 是长度为w 的01 字符串(即字符串S 由w 个“0”或“1” 组成),S 对应于上述条件(3)中的q。将S 从右起划分为若干个长度为k 的段,每段对应一位2k进制的数,如果S 至少可分成2 段,则S 所对应的二进制数又可以转换为上述的2k进制数r。

例:设k=3,w=7。则r 是个八进制数(23=8)。由于w=7,长度为7 的01 字符串按3 位一段分,可分为3 段(即1,3,3,左边第一段只有一个二进制位),则满足条件的八进制数有:

2 位数:高位为1:6 个(即12,13,14,15,16,17),高位为2:5 个,…,高位为6:1 个(即67)。共6+5+…+1=21 个。

3 位数:高位只能是1,第2 位为2:5 个(即123,124,125,126,127),第2 位为3:

4 个,…,第2 位为6:1 个(即167)。共5+4+…+1=1

5 个。

所以,满足要求的r 共有36 个。

【输入文件】

输入文件 digital.in 只有1 行,为两个正整数,用一个空格隔开:

k W

【输出文件】

输出文件 digital.out 为1 行,是一个正整数,为所求的计算结果,即满足条件的不同的r 的个数(用十进制数表示),要求最高位不得为0,各数字之间不得插入数字以外的其他字符(例如空格、换行符、逗号等)。

(提示:作为结果的正整数可能很大,但不会超过200 位)

【输入样例】

3 7

【输出样例】

36

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 条边的连通图。若要使它不再是连通图,至少要删去其中的() 条边。

少儿编程NOIP2006提高组复赛试题

NOIP 2006 复赛试题 (提高组) 第十二届全国青少年信息学奥林匹克 联赛复赛试题 (NOIP2006 提高组) 竞赛时间:2006 年11 月18 日上午8:30—11:30 关于竞赛中不同语言使用限制的说明 一.关于使用Pascal 语言与编译结果的说明 1.对于Pascal 语言的程序,当使用IDE 和fpc 编译结果不一致时,以fpc 的编译结果为准。 2.允许使用数学库(uses math 子句),以及ansistring。但不允许使用编译开关(最后测试时pascal 的范围检查开关默认关闭:{$R-,Q-,S-}),也不支持与优化相关的选项。 二.关于C++语言中模板使用的限制说明 1.允许使用的部分: 标准容器中的布尔集合,迭代器,串,流。 相关的头文件: 2.禁止使用的部分: 序列:vector,list,deque 序列适配器:stack, queue, priority_queue 关联容器:map, multimap, set, multiset 拟容器:valarray 散列容器:hash_map, hash_set, hash_multimap, hash_multiset 所有的标准库算法 相关头文件:

1.能量项链 (energy.pas/c/cpp) 【问题描述】 在Mars 星球上,每个Mars 人都随身佩带着一串能量项链。在项链上有N 颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是Mars 人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果前一颗能量珠的头标记为m,尾标记为r,后一颗能量珠的头标记为r,尾标记为n,则聚合后释放的能量为m⨯r⨯n(Mars 单位),新产生的珠子的头标记为m,尾标记为n。 需要时,Mars 人就用吸盘夹住相邻的两颗珠子,通过聚合得到能量,直到项链上只剩下一颗珠子为止。显然,不同的聚合顺序得到的总能量是不同的,请你设计一个聚合顺序,使一串项链释放出的总能量最大。 例如:设N=4,4 颗珠子的头标记与尾标记依次为(2,3) (3,5) (5,10) (10,2)。我们用记号⊕表示两颗珠子的聚合操作,(j⊕k)表示第j,k 两颗珠子聚合后所释放的能量。则第4、 1 两颗珠子聚合后释放的能量为: (4⊕1)=10*2*3=60。 这一串项链可以得到最优值的一个聚合顺序所释放的总能量为 ((4⊕1)⊕2)⊕3)=10*2*3+10*3*5+10*5*10=710。 【输入文件】 输入文件energy.in 的第一行是一个正整数N(4≤N≤100),表示项链上珠子的个数。第二行是N 个用空格隔开的正整数,所有的数均不超过1000。第i 个数为第i 颗珠子的头标记(1 ≤i≤N),当i

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

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

NOIP2007(pascal)第十三届全国青少学年信息学奥林匹克联赛初赛试题要点

第十三届全国青少年信息学奥林匹克联赛初赛试题 (普及组 Pascal 语言二小时完成) ●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●● 一、单项选择题(共20题,每题1.5分,共计30分。每题有且仅有一个正确答案。) 1.在以下各项中,()不是CPU的组成部分。 A.控制器 B.运算器 C.寄存器 D.主板 2.在关系数据库中,存放在数据库中的数据的逻辑结构以()为主。 A.二叉树 B.多叉树 C.哈希表 D.二维表 3.在下列各项中,只有()不是计算机存储容量的常用单位。 A.Byte B.KB C.UB D.TB 4.ASCII码的含义是()。 A.二→十进制转换码 B.美国信息交换标准代码 C.数字的二进制编码 D.计算机可处理字符的唯一编码5.一个完整的计算机系统应包括()。 A.系统硬件和系统软件 B.硬件系统和软件系统 C.主机和外部设备 D.主机、键盘、显示器和辅助存储器 6.IT的含义是()。 A.通信技术 B.信息技术 C.网络技术 D.信息学 7.LAN的含义是()。 A.因特网 B.局域网 C.广域网 D.城域网 8.冗余数据是指可以由其它数据导出的数据。例如,数据库中已存放了学生的数学、语文和英语的三科成绩,如果还存放三科成绩的总分,则总分就可以看作冗余数据。冗余数据往往会造成数据的不一致。例如,上面4个数据如果都是输入的,由于操作错误使总分不等于三科成绩之和,就会产生矛盾。下面关于冗余数据的说法中,正确的是()。A.应该在数据库中消除一切冗余数据 B.用高级语言编写的数据处理系统,通常比用关系数据库编写的系统更容易消除冗余数据 C.为了提高查询效率,在数据库中可以保留一些冗余数据,但更新时要做相容性检验D.做相容性检验会降低效率,可以不理睬数据库中的冗余数据 9.在下列各软件,不属于NOIP竞赛(复赛)推荐使用的语言环境有()。 A.gcc B.g++ C.Turbo C D.Free Pascal 10.以下断电后仍能保存数据的有()。 A.硬盘 B.高速缓存 C.显存 D.RAM 11.在下列关于计算机语言的说法中,正确的有()。 A.高级语言比汇编语言更高级,是因为它的程序的运行效率更高

noip集训练习 Day3

1.动态规划: 导弹拦截NOIP1999(提高组) 第一题 【问题描述】 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。 输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。 【输入文件】missile.in 单独一行列出导弹依次飞来的高度 【输出文件】missile.out 两行,分别是最多能拦截的导弹数,要拦截所有导弹最少要配备的系统数 【输入样例】 389 207 155 300 299 170 158 65 【输出样例】 6 2

2.合唱队型NOIP2004(提高组) 第一题 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK,则他们的身高满足T1<...Ti+1>…>TK(1<=i<=K)。 你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。 【输入文件】 输入文件chorus.in的第一行是一个整数N(2<=N<=100),表示同学的总数。第一行有n个整数,用空格分隔,第i个整数Ti(130<=Ti<=230)是第i位同学的身高(厘米)。 【输出文件】 输出文件chorus.out包括一行,这一行只包含一个整数,就是最少需要几位同学出列。 【样例输入】 8 186 186 150 200 160 130 197 220 【样例输出】 4 【数据规模】 对于50%的数据,保证有n<=20; 对于全部的数据,保证有n<=100。

2006年第十二届全国青少年信息学奥林匹克竞赛联赛

2006年第十二届全国青少年信息学奥林匹克竞赛联赛 (NOIP ’2006)广东赛区成绩公告 2006年第十二届全国青少年信息学奥林匹克竞赛联赛(NOIP’2006)广东赛区报名人数为5460人(提高组2943人,普及组2517人),参赛人数列全国第三,广东赛区连续第十二年获得优秀组织奖。 2006年广东赛区共有373所学校参赛,参赛人数与参赛学校数比去年略减。本届提高组一等奖由全国统一测评,并按分配名额划线,结果提高组86位同学(含往年获奖37人)获联赛一等奖(即提高组省赛区一等奖),获保送上大学资格,占全国获省赛区一等奖790人(含往年获奖224人)中的10.89%(广东往年获奖的占全国往年获奖的16.52%),今届广东仍然是全国获保送上大学资格人数最多的省份,也是广东获保送资格人数最多的一年,表明广东省信息学竞赛不仅普及面而且尖子层人数也在全国前列。23年的实践表明,GDOI(广东省青少年信息学(计算机)奥林匹克竞赛活动)是培养我们国家、我省计算机优秀后备人才的成功之路。今年提高组二等奖及普及组一等奖由全国划定最低分数线及获奖范围,提高组三等奖及普及组二、三等奖由省竞赛委员会划定各奖项分数线,最后确认:提高组一、二、三等奖分数线分别为100、70、50,普及组一、二、三等奖分数线分别为300、200、110,除提高组一等奖分数线与全国持平外,其余各奖项均高于全国的最低分数线。 按照广东省信息学竞赛评委会制定的量的评估方法,综合测评省内各校在开展计算机教学和科技活动中取得的成绩,从全省373所参赛学校中评出成绩优异的前50所学校,其中前30所学校分获广东赛区学校团体一、二、三等奖(各10所),第31—50所学校获广东赛区表扬奖。中山一中、韶关一中、北江中学等3所学校连续十二年保持广东赛区十强学校称号,广州六中也连续十年保持广东赛区十强学校称号,并与中山纪念中学、汕头金山中学、珠海一中、肈庆中学等8所

编程基本之顺序查找(15题)

01:查找特定的值 ? ?提交 ?统计 ?提问 总时间限制: 1000ms 内存限制: 65536kB 描述 在一个序列(下标从1开始)中查找一个给定的值,输出第一次出现的位置。 输入 第一行包含一个正整数n,表示序列中元素个数。1 <= n <= 10000。 第二行包含n个整数,依次给出序列的每个元素,相邻两个整数之间用单个空格 隔开。元素的绝对值不超过10000。 第三行包含一个整数x,为需要查找的特定值。x的绝对值不超过10000。 输出 若序列中存在x,输出x第一次出现的下标;否则输出-1。 样例输入

样例输出 02:输出最高分数的学生姓名 ? 描述 输入学生的人数,然后再输入每位学生的分数和姓名,求获得最高分数的学生的 姓名。 输入 第一行输入一个正整数N(N <= 100),表示学生人数。接着输入N行,每行 格式如下: 分数姓名

分数是一个非负整数,且小于等于100; 姓名为一个连续的字符串,中间没有空格,长度不超过20。 数据保证最高分只有一位同学。 输出 获得最高分数同学的姓名。 样例输入 样例输出 来源 习题(13-1)

03:不高兴的津津 ? 描述 津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要 参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢 琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高 兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你 帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪 天最不高兴。 输入 包括七行数据,分别表示周一到周日的日程安排。每行包括两个小于10的非负 整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。 输出 包括一行,这一行只包含一个数字。如果不会不高兴则输出0,如果会则输出最 不高兴的是周几(用1, 2, 3, 4, 5, 6, 7分别表示周一,周二,周三,周四,周 五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠 前的一天。 样例输入

1.10编程基础之简单排序(10题)

01:谁考了第k名 查看 提交 统计 提问 总时间限制: 1000ms 描述 在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求 考第k名学生的学号和成绩。 输入 第一行有两个整数,分别是学生的人数n(1≤n≤100),和求第k名学生的k (1≤k≤n)。 其后有n行数据,每行包括一个学号(整数)和一个成绩(浮点数),中间用一 个空格分隔。 输出 输出第k名学生的学号和成绩,中间用空格分隔。(注:请用%g输出成绩) 样例输入 5 3 61 样例输出 02:奇数单增序列

查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按 升序输出。 输入 共2行: 第1行为 N; 第2行为 N 个正整数,其间用空格间隔。 输出 增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。 样例输入 10 1 3 2 6 5 4 9 8 7 10 样例输出 1,3,5,7,9 03:成绩排序

总时间限制: 1000ms 内存限制: 65536kB 描述 给出班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相 同分数则名字字典序小的在前。 输入 第一行为n (0 < n < 20),表示班里的学生数目; 接下来的n行,每行为每个学生的名字和他的成绩, 中间用单个空格隔开。名字 只包含字母且长度不超过20,成绩为一个不大于100的非负整数。 输出 把成绩单按分数从高到低的顺序进行排序并输出,每行包含名字和分数两项,之 间有一个空格。 样例输入 样例输出 04:奖学金 描述

【精选资料】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

第十六届全国青少年信息学奥林匹克联赛初赛试题及答案(提高组)

第十六届全国青少年信息学奥林匹克联赛初赛试题 (提高组Pascal 语言二小时完成) ●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●● 一.单项选择题(共 10 题,每题 1.5 分,共计 15 分。每题有且仅有一个正确选项) 1.与十六进制数A1. 2等值的十进制数是()。 A.101.2 B. 111.4 C. 161.125 D. 177.25 2.一个字节(byte)由()个二进制位组成。 A.8 B. 16 C. 32 D. 以上都有可能 3.以下逻辑表达式的值恒为真的是()。 A. P∨(﹁P∧Q)∨(﹁P∧﹁Q) B. Q∨(﹁P∧Q)∨(P∧﹁Q) C. P∨Q∨(P∧﹁Q)∨(﹁P∧Q) D. P∨﹁Q∨(P∧﹁Q)∨(﹁P∧﹁Q) 4.Linux下可执行文件的默认扩展名为()。 A. exe B. com C. dll D. 以上都不是 5.如果在某个进制下等式7*7=41成立,那么在该进制下等式12*12=( )也成立。 A. 100 B. 144 C. 164 D. 196 6.提出“存储程序”的计算机工作原理的是()。 A. 克劳德·香农 B. 戈登·摩尔 C. 查尔斯·巴比奇 D. 冯·诺伊曼 7.前缀表达式“+3 * 2 +5 12”的值是()。 A. 23 B. 25 C. 37 D. 65 8.主存储器的存取速度比中央处理器(CPU)的工作速度慢得多,从而使得后者的效率受 到影响。而根据局部性原理,CPU所访问的存储单元通常都趋于聚集在一个较小的连续区域中。于是,为了提高系统整体的执行效率,在CPU中引入了()。 A. 寄存器 B. 高速缓存 C. 闪存 D. 外存 9.完全二叉树的顺序存储方案,是指将完全二叉树的结点从上至下、从左至右,依次存放 到一个顺序结构的数组中。假定根结点存放在数组的1号位置,则第k号结点的父结点如果存在话,应当存放在数组的()号位置。 A. 2k B. 2k+1 C. k/2下取整 D. (k+1)/2下取整 10.以下竞赛活动中历史最悠久的是()。 A. 全国青少年信息学奥林匹克联赛(NOIP) B. 全国青少年信息学奥林匹克竞赛(NOI) C. 国际信息学奥林匹克竞赛(IOI) D. 亚太地区信息学奥林匹克竞赛(APIO)

NOIP2007提高组复赛试题

全国信息学奥林匹克联赛(NOIP2007)复赛 提高组 题目一览 (2007年11月17日 3小时完成) 说明: 1.文件名(程序名和输入输出文件名)必须使用小写 2.C/C++中函数main()的返回值必须是int,程序正常结束时返回值必须是0。 3.全国统一评测时采用的机器参考配置为:CPU 2.0GHz,内存256M。

1.统计数字 (count.pas/c/cpp) 【问题描述】 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。 【输入】 输入文件count.in包含n+1行; 第一行是整数n,表示自然数的个数; 第2~n+1每行一个自然数。 【输出】 输出文件count.out包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。 【输入输出样例】 【限制】 40%的数据满足:1<=n<=1000 80%的数据满足:1<=n<=50000 100%的数据满足:1<=n<=200000,每个数均不超过1500 000 000(1.5*109)

2.字符串的展开 (expand.pas/c/cpp) 【问题描述】 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输出时,用连续递增的字母H 或数字串替代其中的减号,即,将上面两个子串分别输出为“defgh”和“45678”。在本题中,我们通过增加一些参数的设置,使字符串的展开更为灵活。具体约定如下: (1) 遇到下面的情况需要做字符串的展开:在输入的字符串中,出现了减号“-”,减号两侧同为小写字母或同为数字,且按照ASCII码的顺序,减号右边的字符严格大于左边的字符。 (2) 参数p1:展开方式。p1=1时,对于字母子串,填充小写字母;p1=2时,对于字母子串,填充大写字母。这两种情况下数字子串的填充方式相同。p1=3时,不论是字母子串还是数字字串,都用与要填充的字母个数相同的星号“*”来填充。 (3) 参数p2:填充字符的重复个数。p2=k表示同一个字符要连续填充k个。例如,当p2=3时,子串“d-h”应扩展为“deeefffgggh”。减号两边的字符不变。 (4) 参数p3:是否改为逆序:p3=1表示维持原来顺序,p3=2表示采用逆序输出,注意这时候仍然不包括减号两端的字符。例如当p1=1、p2=2、p3=2时,子串“d-h”应扩展为“dggffeeh”。 (5) 如果减号右边的字符恰好是左边字符的后继,只删除中间的减号,例如:“d-e”应输出为“de”,“3-4”应输出为“34”。如果减号右边的字符按照ASCII码的顺序小于或等于左边字符,输出时,要保留中间的减号,例如:“d-d”应输出为“d-d”,“3-1”应输出为“3-1”。 【输入】 输入文件expand.in包括两行: 第1行为用空格隔开的3个正整数,一次表示参数p1,p2,p3。 第2行为一行字符串,仅由数字、小写字母和减号“-”组成。行首和行末均无空格。 【输出】 输出文件expand.out只有一行,为展开后的字符串。 【输入输出样例1】 【输入输出样例2】

noip2005复赛试题

第十一届全国青少年奥林匹克信息学联赛复赛普及组试题 (普及组三小时完成) 陶陶摘苹果 (apple.pas/c/cpp) 【问题描述】 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。 现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。 【输入文件】 输入文件apple.in包括两行数据。第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。 【输出文件】 输出文件apple.out包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。 【样例输入】 100 200 150 140 129 134 167 198 200 111 110 【样例输出】 5

校门外的树 (tree.pas/c/cpp) 【问题描述】 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。 由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。 【输入文件】 输入文件tree.in的第一行有两个整数L(1 <= L <= 10000)和M(1 <= M <= 100),L 代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。 【输出文件】 输出文件tree.out包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。 【样例输入】 500 3 150 300 100 200 470 471 【样例输出】 298 【数据规模】 对于20%的数据,区域之间没有重合的部分; 对于其它的数据,区域之间有重合的情况。

青少年信息学奥林匹克初级竞赛辅导练习题

第一题(p236) 问题描述:将键盘输入的字符串中所有的十进制数找出来,并求它们的和输入:APPLE 25, PEAR 125 屏幕输出:25+125=150 输入:THIS IS A BOOK 屏幕输出:0 第二题(p236) 问题描述:求n! (n!=l x2X3X4X5X-X n)的精确值(n W25 )。 输入:n=11 屏幕输出:n!=39916800 第三题(p236) 问题描述;当输入正整数N W( 0

2•输入一个正整数X,然后与它的倒序排列的数相加,求其结果。(p234) 例如:正整数238,其倒序排列的数为832,其结果为238+832=1070 P28练习 (2 )£民身粉号码是直特征组合码丫由17位數字本佯码和1竝数字校君码组成。fit列扈序从左至右Kt次为:六址狷■八位数字出生日期码「三憧数字■序码和一拉数字牧验码。 校翕码的计算方法如下: X先対前17怪数字[数字本体码)的加权求和*求捆公式如下: s = Sum(A x Wih I - 1, 2, ■■■ ,1?o 其申土 A.哀示療i位■上的暑份证号码数宇值,W.査示上的加枫因子。也・i与加机因子对照表如下: i 1 2 3 4 5 6 7 8 910111213141516 17 W. 7 9 10 5 8 4 2 16379W58 4 2 z盘后计nsftiu 11的余数’ Y = s mod 11 玄最后诵过余議得到对应的校輪码。对照表如下■ 余数¥0 12 3 4 5 6 7 8910 檯弊码10X987 6 5 432 试设计一个程序I根据怖人的身份证号码.輪证其校验码的豪伪O [例2]报数游戏(NOIP-TJ-2006小学组复赛题)。(p30) 小朋友都喜欢做游戏,今天就教大家一个游戏。游戏规则非常简单,基本描述如下:

第十二届全国青少年信息学奥林匹克联赛初赛试题及参考答案

第十二届全国青少年信息学奥林匹克联赛初赛试题及参考答案 第十二届全国青少年信息学奥林匹克联赛初赛试题 (提高组C 语言二小时完成) ● ● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●● 一、单项选择题(共10题,每题1.5分,共计15分。每题有且仅有一个正确答案.)。 1. 在以下各项中。()不是CPU的组成部分。 A. 控制器 B. 运算器 C. 寄存器 D. ALU E. RAM 答案:E 知识点: 寄存器是中央处理器内的组成部份。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。 寄存器是内存阶层中的最顶端,也是系统获得操作资料的最快速途径。寄存器通常都是以他们可以保存的位元数量来估量,举例来说,一个“8 位元寄存器”或“32 位元寄存器”。寄存器现在都以寄存器档案的方式来实作,但是他们也可能使用单独的正反器、高速的核心内存、薄膜内存以及在数种机器上的其他方式来实作出来。 寄存器通常都用来意指由一个指令之输出或输入可以直接索引到的暂存器群组。更适当的是称他们为“架构寄存器”。 例如,x86 指令及定义八个32 位元寄存器的集合,但一个实作x86 指令集的 CPU 可以包含比八个更多的寄存器。 寄存器是CPU内部的元件,寄存器拥有非常高的读写速度,所以

在寄存器之间的数据传送非常快。 算术逻辑单元 (Arithmetic-Logic Unit, ALU)是中央处理器(CPU)的执行单元,是所有中央处理器的核心组成部分,由"And Gate" 和"Or Gate"构成的算术逻辑单元,主要功能是进行二位元的算术运算,如加减乘(不包括整数除法)。基本上,在所有现代CPU体系结构中,二进制都以补码的形式来表示。 2. BIOS(基本输入输出系统)是一组固化在计算机内()上一个ROM芯片上的程序。 A. 控制器 B. CPU C. 主板 D. 内存条 E. 硬盘 答案:C 分析:BIOS是英文"Basic Input Output System"的缩略语,直译过来后中文名称就是"基本输入输出系统"。其实,它是一组固化到计算机内主板上一个ROM 芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。BIOS芯片是主板上一块长方型或正方型芯片。 3. 在下面各世界顶级的奖项中,为计算机科学与技术领域作出杰出贡献的科学家设立的奖项是()。 A. 沃尔夫奖 B. 诺贝尔奖 C. 菲尔兹奖 D. 图灵奖 E. 南丁格尔奖 答案:D 根据知识迁徙,有第十五届第一题可知

最新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历年复赛提高组试题(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

相关文档
最新文档