NOIP2007初赛提高组C++试题
NOIP初赛试题提高组C语言

2.已知 a, b, c, d, e, f, g 七个人中, a 会讲英语; b 会讲英语和汉语; c 会讲英语、意大利语和俄语; d 会讲汉语和日语; e 会讲意大利语和德语; f 会讲俄语、日语和法语; g 会讲德语和法语。
能否将他们的座位安排在圆桌旁,使得每个人都能与他身边的人交谈?如果可以,请以“ a b ”开头写出你的安排方案: 。
.答: a b d f g e c第十一届(2005)a-b-d-fc-e-g-f g-e-c-f第十二届(2006)三.问题求解(共 2 题,每题 5 分,共计10 分)1.将2006 个人分成若干不相交的子集,每个子集至少有3 个人,并且:(1)在每个子集中,没有人认识该子集的所有人。
(2)同一子集的任何 3 个人中,至少有2 个人互不认识。
(3)对同一子集中任何 2 个不相识的人,在该子集中恰好只有 1 个人认识这两个人。
则满足上述条件的子集最多能有___________个?分析:要使子集数最多,每一子集的人数应最少。
每一子集的人数为3,不符合要求,为4也不符合要求,为5可符合要求。
2.将边长为n 的正三角形每边n 等分,过每个分点分别做另外两边的平行线,得到若干个正三角形,我们称为小三角形。
正三角形的一条通路是一条连续的折线,起点是最上面的一个小三角形,终点是最下面一行位于中间的小三角形。
在通路中,只允许由一个小三角形走到另一个与其有公共边的且位于同一行或下一行的小三角形,并且每个小三角形不能经过两次或两次以上(图中是n=5 时一条通路的例子)。
设n=10,则该正三角形的不同的通路的总数为_____________。
分析与解:如果n=2,存在的不同的通路总数为1如果n=3,存在的不同的通路总数为2=1*2=2!如果n=4,存在的不同的通路总数为6=1*2*3=3!如果n=5,存在的不同的通路总数为24=1*2*3*4=4!……如果n=10,存在的不同的通路总数为9!第十三届(2007)三.问题求解(共2 题,每题5 分,共计10 分)1.给定n 个有标号的球,标号依次为1,2,…,n。
2007年noip提高组题目解析

[解题思想2 by peterche1990/2wsx2wsx2wsx/czp] 容易求出所有最长路,以及所有最长路上的点。依 次枚举,复杂度是O(KN^3),其中K是最长路的条数。 该算法易于实现,但是写得不好会TLE1个点,部分 大牛就是这样没有得400的。
[解题思想3] 引理:如果树有多条直径,则每条直径上都存在一个core。 明:首先,如图,如果ABCD和FBCE都是直径的话,则AB=FB, CD=CE(如果不然,可设AB>FB,则FBCE<ABCE,矛盾!)。 这样,ABCE,FBCD也都是直径。我们给BC起个名字叫“公共 段”。题目中说过,公共段必然存在。 考虑ecc的定义,路径的ecc是指所有的点到路径的距离的最大值。 核指的是直径上长度满足约束的ECC最小的子路经。假如根据直径 ABCE算得的core是GHBI,路径GHBI的ecc就是max{BF,AG,DI,EI}, 这个最大值取到了最小。由于DC=EC,也就是说,如果路径和公 共段有交集,公共段的一端上,不包含CORE的直径是可以任选的。 换言之,此时max{BF,AG,ID}有最小值,此时用AB替换BF,发现必 然有BF=AB>AG,ecc=max{BF,ID}。也就是说,如果路径和公共段 有交集,实际计算max时,只需要计算路径在公共段上的部分的 ecc,然后和公共段两端的路径长取一遍MAX就行了。
第四个题目 core [题目转述] 给出一棵无根树,边上有权。称最长路径为直径, 定义路径的偏心距为:点到路径的上的点的最小值 的距离的最大值,给出一个s,找出直径上的某段长 度不超过s的路径,使得偏心距最小。
[解题思想] 算法是严格立方的。中心理念是不要做重复的工作。算法比较笨 拙。考虑到树的性质,对于任意两点,最短路=联通路=最长路。 首先求出多源最短路,该步可以由类似Tarjan的算法,在O(N^2) 内解决。实际上由于下一步的复杂度高达三次方,这里就直接 floyd了。同时可以求出最长路径上都有哪些点。在NOI2007中, 记录最短路的中间结点是很有用的。设mid[a,b]是a,b之间的联通 路上的一个中间点,。 由于这是一棵树,最短路必然唯一。考虑问题的解,构造一个函 数F(k,a,b)为K到ab间的最短路的长度。则 f(k,a,b)=min{d[k,mid[a,b],f[k,a,mid[a,b]],f[k,mid[a,b],b]} 写出了这 个方程,便不难得出一个三次方的算法。 在实际coding的时候,把k放在最外层枚举,这样内层实际上只 用到了f的后面2维,用2维数组记录即可。
NOIP历届(2007-2008)提高组 初赛 C语言 试题

NOIP历届(2007-2008)提高组初赛C语言试题提高组 C 语言二小时完成)●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(共10题,每题1.5分,共计15分。
每题有且仅有一个正确答案.)。
1. 在以下各项中。
()不是CPU的组成部分。
A. 控制器B. 运算器C. 寄存器D. ALUE. RAM2. BIOS(基本输入输出系统)是一组固化在计( )上一个ROM芯片上的程序。
A. 控制器B. CPUC. 主板D. 内存条E. 硬盘3. 在下面各世界顶级的奖项中,为计算机科学与技术领域作出杰出贡献的科学家设立的奖项是()。
A. 沃尔夫奖B. 诺贝尔奖C. 菲尔兹奖D. 图灵奖E. 南丁格尔奖4.在编程时(使用任一种高级语言,不一定是C),如果需要从磁盘文件中输入一个很大的二维数组(例如1000*1000 的double 型数组),按行读(即外层循环是关于行的)与按列读(即外层循环是关于列的)相比,在输入效率上()。
A. 没有区别B. 有一些区别,但机器处理速度很快,可忽略不计C. 按行读的方式要高一些D. 按列读的方式要高一些E. 取决于数组的存储方式。
5.在C语言中,表达式21^2的值是()A. 441B. 42C.23D.24E.256.在C语言中,判断a不等于0且b不等于0的正确的条件表达式是()A. !a==0 || !b==0 B. !((a==0)&&(b==0)) C. !(a==0&&b==0)D. a!=0 || b!=0E. a && b7.某个车站呈狭长形,宽度只能容下一台车,并且只有一个出入口。
已知某时刻该车站状态为空,从这一时刻开始的出入记录为:“进,出,进,进,进,出,出,进,进,出”。
假设车辆入站的顺序为1,2,3,……,则车辆出站的顺序为()。
A. 1, 2, 3, 4, 5B. 1, 2, 4, 5, 7C. 1, 4, 3, 7, 6D. 1, 4, 3, 7, 2E. 1, 4, 3, 7, 58.高度为n的均衡的二叉树是指:如果去掉叶结点及相应的树枝,它应该是高度为n-1的满二叉树。
NOIP提高组初赛试题-C++含标准答案

NOIP提高组初赛试题-C++含答案————————————————————————————————作者:————————————————————————————————日期:第十四届全国青少年信息学奥林匹克联赛初赛试题(提高组 C++ 语言二小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(共10题,每题1.5分,共计15分。
每题有且仅有一个正确答案)。
1. 在以下各项中,()不是操作系统软件。
A. SolarisB. LinuxC. SybaseD. Windows VistaE.Symbian2.微型计算机中,控制器的基本功能是()。
A. 控制机器各个部件协调工作B. 实现算术运算和逻辑运算C.存储各种控制信息D. 获取外部信息E. 存放程序和数据3. 设字符串S=”Olympic”,S的非空子串的数目是()。
A. 29B. 28C. 16D. 17E. 74.完全二叉树共有2*N-1个结点,则它的叶节点数是()。
A. N-1B. 2*NC. ND. 2N-1E. N/25.将数组{8, 23, 4, 16, 77, -5, 53, 100}中的元素按从大到小的顺序排列,每次可以交换任意两个元素,最少需要交换()次。
A. 4B. 5C. 6D. 7E. 86.设栈S的初始状态为空,元素a,b,c,d,e,f依次入栈S,出栈的序列为b,d,c,f,e,a,则栈S的容量至少应该是()。
A. 6B. 5C. 4D. 3E. 27. 与十进制数28.5625相等的四进制数是()。
A. 123.21B. 131.22C. 130.22D. 130.21E.130.208.递归过程或函数调用时,处理参数和返回地址,通常使用一种称为()的数据结构。
A. 队列B. 多维数组C. 线性表D. 链表E. 栈9. TCP/IP是一组构成互联网基础的网络协议,字面上包括两组协议:传输控制协议(TCP)和网际协议(IP)。
NOIP2007普及组初赛试题答案

2007年noip普及组初赛试题一、单项选择题(共20题,每题1.5分,共计30分。
每题有且仅有一个正确答案。
)1.在以下各项中,()不是CPU的组成部分。
A.控制器 B.运算器C.寄存器 D.主板2.在关系数据库中,存放在数据库中的数据的逻辑结构以()为主。
A.二叉树 B.多叉树C.哈希表 D.二维表3.在下列各项中,只有()不是计算机存储容量的常用单位。
A.Byte B.KB C.UB D.TB4.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 Pascal10.以下断电后仍能保存数据的有()。
A.硬盘B.高速缓存C.显存 D.RAM11.在下列关于计算机语言的说法中,正确的有()。
2007-2011年noip初赛提高组试题及答案

第十七届全国青少年信息学奥林匹克联赛初赛试题(提高组 Pascal语言两小时完成)●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(共20题,每题1.5分。
共计30分。
每题有且仅有一个正确选项。
)1.在二进制下,1100011 +()= 1110000。
A.1011 B.1101 C.1010 D.11112.字符“A”的ASCII码为十六进制41,则字符“Z”的ASCII码为十六进制的()。
A.66 B.5A C.50 D.视具体的计算机而定3.右图是一棵二叉树,它的先序遍历是()。
A.ABDEFC B.DBEFAC C.DFEBCA D.ABCDEF4.寄存器是()的重要组成部分。
A.硬盘B.高速缓存C.内存D.中央处理器(CPU)5.广度优先搜索时,需要用到的数据结构是()。
A.链表B.队列C.栈D.散列表6.在使用高级语言编写程序时,一般提到的“空间复杂度”中的“空间”是指()。
A.程序运行时理论上所占的内存空间B.程序运行时理论上所占的数组空间C.程序运行时理论上所占的硬盘空间D.程序源文件理论上所占的硬盘空间7.应用快速排序的分治思想,可以实现一个求第K大数的程序。
假定不考虑极端的最坏情况,理论上可以实现的最低的算法时间复杂度为()。
A.O(n2)B.O(n log n)C.O(n) D.O(1)8.为解决Web应用中的不兼容问题,保障信息的顺利流通,()制定了一系列标准,涉及HTML、XML、CSS等,并建议开发者遵循。
A.微软 B.美国计算机协会(ACM) C.联台国教科文组织D.万维网联盟(W3C)9.体育课的铃声响了,同学们都陆续地奔向操场,按老师的要求从高到矮站成一排。
每个同学按顺序来到操场时,都从排尾走向排头,找到第一个比自己高的同学,并站在他的后面。
这种站队的方法类似于()算法。
A.快速排序B.插入排序C.冒泡排序D.归并排序10.1956年()授予肖克利(William Shockley)、巴丁(John Bardeen)和布拉顿(Walter Brattain),以表彰他们对半导体的研究和晶体管效应的发现。
历年NOIP提高组试题难度列表

NOIP2008-D
NOIP2009-A
NOIP2009-B
火柴棒等式 模拟
传纸条 双栈排序
动态 规划
构造
潜伏者 模拟
Hankson的 趣味题
数学
枚举,优化/开表 0.8
历届搜索
题一般都比较
多维状态DP 0.7 难,搜索算法
本身简单,于
枚举,贪心/二分 图
0.4
是题目会提高
选手对其他方
模拟
【构造】
动态 规划
构 造, 贪心
多维DP
BFS/贪心,并查 集
平均难度系 数:0.27
构造类题 目一般没有明 确的算法,需
NOIP2010-D
引水入城
搜索 BFS
要选手仔细分 析题目的实
质,并得出解法。
这个解法通常不是唯一的。有时一个好的贪心可以得相当
多的分。有时搜索剪枝可以很大的提高效率。同样以多得分为
需要掌握
模拟,字符串
质数及其性 0.8 质,基础的实
子序列DP,贪心 优化
0.2
数操作,加法 原理和乘法原
置换群,贪心 0.2 理。此类题需
字符串,抽样检 测,表达式
区间环DP
要选手对数学 0.3 规律的灵感。
【图论】 0.6 平均难度系
资源分配DP,构 造
0.6
数:0.50 历届考察
模拟
动态规划/组合 数学,高精度
金明的预算 动态
方案
规划
作业调度方 案
模拟
2^k进制数
动态 规划
统计数字 模拟
字符串的展 开
模拟
矩阵取数游 动态
戏
规划
树网的核 图论
最新NOIP提高组初赛试题-C++含答案资料

第十四届全国青少年信息学奥林匹克联赛初赛试题(提高组 C++ 语言二小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(共10题,每题1.5分,共计15分。
每题有且仅有一个正确答案)。
1. 在以下各项中,()不是操作系统软件。
A. SolarisB. LinuxC. SybaseD. Windows VistaE. Symbian2.微型计算机中,控制器的基本功能是()。
A. 控制机器各个部件协调工作B. 实现算术运算和逻辑运算C.存储各种控制信息D. 获取外部信息E. 存放程序和数据3. 设字符串S=”Olympic”,S的非空子串的数目是()。
A. 29B. 28C. 16D. 17E. 74.完全二叉树共有2*N-1个结点,则它的叶节点数是()。
A. N-1B. 2*NC. ND. 2N-1E. N/25.将数组{8, 23, 4, 16, 77, -5, 53, 100}中的元素按从大到小的顺序排列,每次可以交换任意两个元素,最少需要交换()次。
A. 4B. 5C. 6D. 7E. 86.设栈S的初始状态为空,元素a,b,c,d,e,f依次入栈S,出栈的序列为b,d,c,f,e,a,则栈S的容量至少应该是()。
A. 6B. 5C. 4D. 3E. 27. 与十进制数28.5625相等的四进制数是()。
A. 123.21B. 131.22C. 130.22D. 130.21E. 130.208.递归过程或函数调用时,处理参数和返回地址,通常使用一种称为()的数据结构。
A. 队列B. 多维数组C. 线性表D. 链表E. 栈9. TCP/IP是一组构成互联网基础的网络协议,字面上包括两组协议:传输控制协议(TCP)和网际协议(IP)。
TCP/IP 协议把Internet网络系统描述成具有四个层次功能的网络模型,其中提供源节点和目的节点之间的信息传输服务,包括寻址和路由器选择等功能的是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
19. 在下列关于算法复杂性的说法中,正确的有( )。 A. 算法的时间复杂度,是指它在某台计算机上具体实现时的运行时间 B. 算法的时间复杂度,是指对于该算法的一种或几种主要的运算,运算的次数与问题的规模之间的函
数关系 C. 一个问题如果是NPC类的,就意味着在解决该问题时,不存在一个具有多项式时间复杂度的算法。
三.问题求解(共 2 题,每题 5 分,共计 10 分)
1.给定 n 个有标号的球,标号依次为 1,2,…,n。将这 n 个球放入 r 个相同的盒子里,不允许 有空盒,其不同放置方法的总数记为 S(n,r)。例如,S(4,2)=7,这 7 种不同的放置方法依次为 {(1),(234)}, {(2),(134)}, {(3),(124)}, {(4),(123)}, {(12),(34)}, {(13),(24)}, {(14),(23)}。当 n=7,r=4 时,S(7,4)= _____________。
NOIP2007 初赛试题(提高组 C++)
第十三届全国青少年信息学奥林匹克联赛初赛试题
( 提高组 C++ 语言 二小时完成 )
●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●●
一、 单项选择题 (共 10 题,每题 1.5 分,共计 15 分。每题有且仅有一个正确答案)。
1. 在以下各项中,( )不是 CPU 的组成部分。
4.ASCII 码的含义是( )。
A. 二─十进制转换码
B. 美国信息交换标准代码
C. 数字的二进制编码
D. 计算机可处理字符的唯一编码
E. 常用字符的二进制编码
5.在 C++语言中,表达式 23|2^5 的值是( )
A. 23
B. 1
C.18
D.32
E.24
6.在 C++语言中,判断 a 等于 0 或 b 等于 0 或 c 等于 0 的正确的条件表达式是( ) A. !((a!=0)||(b!=0)||(c!=0)) B. !((a!=0)&&(b!=0)&&(c!=0)) C. !(a==0&&b==0)||(c!=0) D. (a=0)&&(b=0)&&(c=0) E. !((a=0)||(b=0)||(c=0))
(提示:对 N=2m+r 进行分析,其中 0≤r<2m )。
四.阅读程序写结果(共 4 题,每题 8 分,共计 32 分) 1.#include <iostream.h>
void main() {int i,p[5],q[5],x,y=20; for(i=0;i<=4;i++) cin>>p[i]; q[0]=(p[0]+p[1])+(p[2]+p[3]+p[4])/7; q[1]=p[0]+p[1]/((p[2]+p[3])/p[4]); q[2]=p[0]*p[1]/p[2]; q[3]=q[0]*q[1]; q[4]=q[1]+q[2]+q[3]; x=(q[0]+q[4]+2)-p[(q[3]+3)%4]; if(x>10)
7.地面上有标号为 A、B、C 的 3 根细柱,在 A 柱上放有 10 个直径相同中间有孔的圆盘,从上到下依 次编号为 1,2,3,……,将 A 柱上的部分盘子经过 B 柱移入 C 柱,也可以在 B 柱上暂存。如果 B 柱 上的操作记录为:“进,进,出,进,进,出,出,进,进,出,进,出,出”。那么,在 C 柱上,从下 到上的盘子的编号为( )。
B. 4 2 5 6 1 3 7
C. 4 2 3 1 5 4 7
D. 4 2 5 6 1 7 3
15. 冗余数据是指可以由其他数据导出的数据,例如,数据库中已存放了学生的数学、语文和英语的三 科成绩,如果还存放三科成绩的总分,则总分就可以看作冗余数据。冗余数据往往会造成数据的不一致, 例如,上面 4 个数据如果都是输入的,由于操作错误使总分不等于三科成绩之和,就会产生矛盾。下面 关于冗余数据的说法中,正确的是( )。
y+= (q[1]*100-q[3])/(p[p[4]%3]*5); else
y+=20+(q[2]*100-q[3])/(p[p[4]%3]*5); cout<<x<<","<<y<<endl; }
© 中国计算机学会 2007
4
NOIP2007 初赛试题(提高组 C++) //注:本例中,给定的输入数据可以避免分母为 0 或数组元素下标越界。 输入:6 6 5 5 3 输出:_______________
10. 一个无法靠自身的控制终止的循环称为“死循环”,例如,在 C 语言程序中,语句“while(1) printf(“*”);”就是一个死循环,运行时它将无休止地打印*号。下面关于死循环的说法中,只有( ) 是正确的。
A. 不存在一种算法,对任何一个程序及相应的输入数据,都可以判断是否会出现死循环,因而, 任何编译系统都不做死循环检验
11. 设A=B=true,C=D=false,以下逻辑运算表达式值为真的有( )。
A. ( ¬ A∧B)∨(C∧D∨A)
B. ¬ (((A∧B)∨C)∧D)
C. A∧(B∨C∨D)∨D
D. (A∧(D∨C)) ∧B
12. 命题“P→Q”可读做P蕴涵Q,其中P、Q 是两个独立的命题。只有当命题P成立而命题Q不成立时,
2.#include <iostream.h> void fun(int *a,int *b) {int *k; k=a;a=b;b=k; } void main( ) {int a=3, b=6, *x=&a, *y=&b; fun(x,y); cout<<"No.1:"<<a<<","<<b<<" "; fun(&a,&b); cout<<"No.2:"<<a<<","<<b<<endl; }
输出: ________________________________________
© 中国计算机学会 2007
5
NOIP2007 初赛试题(提高组 C++) ________________________________________ 4.#include <iostream.h> #include <iomanip.h> char ch[]={'q','A','S','O','R','T','E','X','A','M','P','L','E'}; int n=12; void shift(int k, int n) {char v; int j; v=ch[k]; j=k+k; while (j<=n) {if((j<n) && (ch[j]<ch[j+1])) j++; if (v<ch[j])
A. 应该在数据库中消除一切冗余数据 B. 与用高级语言编写的数据处理系统相比,用关系数据库编写的系统更容易消除冗余数据 C. 为了提高查询效率,在数据库中可以适当保留一些冗余数据,但更新时要做相容性检验 D. 做相容性检验会降低效率,可以不理睬数据库中的冗余数据
16.在下列各软件中,属于 NOIP 竞赛(复赛)推荐使用的语言环境有( )。
但这一点还没有得到理论上的证实,也没有被否定 D. 一个问题如果是NP类的,与C有相同的结论
20. 近20年来,许多计算机专家都大力推崇递归算法,认为它是解决较复杂问题的强有力的工具。在下 列关于递归算法的说法中,正确的是( )。
© 中国计算机学会 2007
3
NOIP2007 初赛试题(提高组 C++) A. 在1977年前后形成标准的计算机高级语言“FORTRAN77”禁止在程序使用递归,原因之一是该方 法可能会占用更多的内存空间 B. 和非递归算法相比,解决同一个问题,递归算法一般运行得更快一些 C. 对于较复杂的问题,用递归方式编程往往比非递归方式更容易一些 D. 对于已经定义好的标准数学函数 sin(x),应用程序中的语句“y=sin(sin(x));”就是一种递 归调用
输出:____________________
3.#include <iostream.h> #include <iomanip.h> #include "math.h" void main() {int a1[51]={0}; int i,j,t,t2,n=50; for (i=2;i<=sqrt(n);i++) if(a1[i]==0) {t2=n/i; for(j=2;j<=t2;j++) a1[i*j]=1; } t=0; for (i=2;i<=n;i++) if(a1[i]==0) {cout<<setw(4)<<i; t++; if(t%10==0) cout<<endl; } cout<<endl; }
A. gcc