NOIP2007初赛提高组C++试题

合集下载

NOIP初赛试题提高组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提高组题目解析

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语言 试题

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++含标准答案

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普及组初赛试题答案

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初赛提高组试题及答案

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提高组试题难度列表

历年NOIP提高组试题难度列表
NOIP2008-C
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++含答案资料

最新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网络系统描述成具有四个层次功能的网络模型,其中提供源节点和目的节点之间的信息传输服务,包括寻址和路由器选择等功能的是()。

NOIP2007初赛普及组(C++)

NOIP2007初赛普及组(C++)

试题部分(普及组 C++语言二小时完成)● ●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(共20题,每题1.5分,共计30分。

每题有且仅有一个正确答案.)。

1. 在以下各项中,()不是CPU的组成部分。

A. 控制器B. 运算器C. 寄存器D. 主板2.在关系数据库中,存放在数据库中的数据的逻辑结构以()为主。

A. 二叉树B. 多叉树C.哈希表D.二维表3.在下列各项中,只有()不是计算机存储容量的常用单位。

A. ByteB. KBC.UBD.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. gccB. g++C. Turbo CD. free pascal10. 以下断电之后仍能保存数据的有()。

最新NOIP初赛试题c语言答案资料

最新NOIP初赛试题c语言答案资料
Noip2007 c答案:
一、单项选择题:(每题1.5分)
1. D 2. E 3. D 4. B 5. A
6. B 7. D 8. B 9. D 10. A
二、不定项选择题(共10题,每题1.5分得分)。
11. ABC 12. AD 13. ABD 14. ABD 15. BC
q[3]=q[0]*q[1];// q[3]=13*8=104
q[4]=q[1]+q[2]+q[3];//q[4]=8+7+104=119
据上述部分的分析可见,我校学生就达4000多人。附近还有两所学校,和一些居民楼。随着生活水平的逐渐提高,家长给孩子的零用钱也越来越多,人们对美的要求也越来越高,特别是大学生。他们总希望自己的无论是衣服还是首饰都希望与众不同,能穿出自己的个性。但在我们美丽的校园里缺少自己的个性和琳琅满目的饰品,所以我们的小饰品店存在的竞争力主要是南桥或是市区的。这给我们小组的创业项目提供了一个很好的市场机会。x=(q[0]+q[4]+2)-p[(q[3]+3)%4];//x=(13+119+2)-p[(36+3)%4]=134-5=129
⑤<= 1
2①x[i-2]*(m-1)
②j+x[i-1]*k
③j+x[i-1]*k(同2)
④r-1
⑤x[i-1]+1
⑥backtrace(i+1,r)
四、
1、6 6 5 5 3
2、Google网站www。people。com。cn#include <stdio.h>
新材料手工艺品。目前,国际上传统的金银、仿金银制成饰品的销售在逐步下降,与此形成鲜明对比的是,数年以前兴起的崇尚然风格、追求个性的自制饰品--即根据自己的创意将各种材质的饰珠,用皮、布、金属等线材串出的品,正在各国的女性中大行其道。int main()

(word完整版)NOIP提高组初赛历年试题及答案阅读题篇,.docx

(word完整版)NOIP提高组初赛历年试题及答案阅读题篇,.docx

NOIP 提高组初赛历年试题及答案阅读题篇程序写果(共 4 ,每 8 分,共 32 分)程序的最好方法并非是依次从到尾。

程序不像迷,我无法从末尾几找到答案,也不像一本引人入的籍,只需直接翻到褶最多的那几,我就能找到最精彩的片断。

因此我在程序,最好逐一考察研究每一段代,搞清楚每一段代的来去脉,理解每一段代在程序中所起的作用,而形成一个虚的程序构,并以此基来行。

1、分:高入手,逐深入,正确理解程序。

2、写注解:固化、、提已有的理解成果。

3、先模:根据代序跟踪量,模运算。

4、找律:先模几次循后,找出背后的律。

5、看功能:从代构和运算果判断程序功能。

6、猜算法:有不知道算法,通构和函数猜一猜。

7、方法:了解程序本后,一个熟悉的方法。

大多数人来,写程序是令人开心的一件事情,人的程序却很痛苦,很恐惧,宁愿自己重写一遍。

其到好的程序,就像一篇美文,令人心神怡,豁然开朗,因背后是一个人的思,甚至整个人生。

人的程序不可以巩固自己的知,启自己的思,提升自己的修养,你收,其,也是在学、在、在工作中的最重要、最常用的基本功。

如果写程序是把自己的思化代,程序就是把代化你理解的人的思。

当你程序有烈的代入感,像演一,真正入到的精神世界,面部表情也随之日丰富起来。

祝你!你通关了!之,看得多,得多,拼得多,你就考得多⋯⋯NOIP2011-1 .#include <iostream>#include <cstring>using namespace std;const int SIZE = 100;int main(){int n,i,sum,x,a[SIZE];cin>>n;memset(a,0,sizeof(a));for(i=1;i<=n;i++){cin>>x;a[x]++;}i=0;sum=0;while(sum<(n/2+1)){i++;sum+=a[i];}cout<<i<<endl;return 0;}输入:114 5 6 6 4 3 3 2 3 2 1一步步模拟,注意输出的是sum超出循环条件时的i 值(中位数),而不是sum ,也不是a[x]输出: 3NOIP2011-2 .#include <iostream> using namespace std; int n;void f2(int x,int y); void f1(int x,int y){if(x<n)f2(y,x+y);}void f2(int x,int y){cout<<x<<' ';f1(y,x+y);}int main(){cin>>n;f1(0,1);return 0;}输入: 30此为简单的递归题,依次输出f2(x,y)中的x值,注意边界条件时f1(x,y)的x>=30咦!这不是隔一个输出一个的Fibonacci吗?输出: 1 2 5 13 34NOIP2011-3 .#include <iostream>using namespace std; const int V=100;int n,m,ans,e[V][V];bool visited[V];void dfs(int x,intlen){int i;visited[x]= true;if(len>ans)ans=len;for(i=1;i<=n;i++)if( (!visited[i]) &&(e[x][i]!=-1) ) dfs(i,len+e[x][i]);visited[x]=false;}int main(){int i,j,a,b,c;cin>>n>>m;for(i=1;i<=n;i++)for(j=1;j<=m;j++)e[i][j]=-1;for(i=1;i<=m;i++){cin>>a>>b>>c;e[a][b]=c;e[b][a]=c;}for(i=1;i<=n;i++)visited[i]=false;ans=0;for(i=1;i<=n;i++)dfs(i,0);cout<<ans<<endl;return 0;}输入:4 61 2 102 3 203 4 304 1 401 3 502 4 60一看就知这是深搜算法(DFS ),输入是个四个顶点的无向图(邻接矩阵如下):如len>ans,则 ans=len,可以说明这是个在图中用DFS找最长的路径的程序。

NOIP2007提高组试题及解析

NOIP2007提高组试题及解析

NOIP2007提高组试题及解析1.统计数字(count.pas/c/cpp)【问题描述】某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109)。

已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。

【输入】输入文件count.in包含n+1行;第一行是整数n,表示自然数的个数;第2~n+1每行一个自然数。

【输出】输出文件count.out包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。

每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。

【输入输出样例】count.in8242451002100count.out2 34 25 1100 2【限制】40%的数据满足:1<=n<=100080%的数据满足:1<=n<=50000100%的数据满足:1<=n<=200000,每个数均不超过1500 000 000(1.5*109)【解题思想1】显然,此题可以用排序的方法来解决,根据n的范围,可以看出,O(nlogn)的算法是可以接受的。

【解题思想2】维护一个二叉树,以数的大小作为节点的权值,以数的重复次数作为节点的附加信息。

之后中序遍历即可。

看起来,树内的节点个数应该不到n,所以可能表现不错,其算法复杂度依然为O(nlogn)【实际数据规模】挺小的,而且也没有传说中的卡Qsort的数据,全部都很温柔。

【分析】这个题目实在不能说是一道TG组的好题。

实际上,个人认为题目最大的意义在于:提供了10个测试排序算法的不怎么特别好的数据。

话说回来,此题是送分题,但是送分题送的这么水,考察的也就只有OIers的细心程度了。

在考试的时候,要相信有简单的题目,要相信有直接的算法。

在我的身边就有几个同学因为这个题目与一等失之交臂,这是最可惜的事情。

var a:array[1..200001] of longint;i,j,k,m,n:longint;procedure qsort(s,t:longint);var i,j,mid,temp:longint;begini:=s;j:=t;mid:=a[(s+t) div 2];while i<=j dobeginwhile a[i]<mid do inc(i);while a[j]>mid do dec(j);if i<=j thenbegintemp:=a[i];a[i]:=a[j];a[j]:=temp;inc(i);dec(j);end;end;if i<t then qsort(i,t);if j>s then qsort(s,j);end;beginreadln(n);for i:=1 to n do readln(a[i]);qsort(1,n);a[n+1]:=maxlongint;k:=1;for i:=2 to n+1 doif a[i]<>a[i-1] thenbegin writeln(a[i-1],' ',k); k:=1;endelse k:=k+1;end.2.字符串的展开(expand.pas/c/cpp)【问题描述】在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输出时,用连续递增的字母获数字串替代其中的减号,即,将上面两个子串分别输出为“defgh”和“45678”。

NoipXX初赛提高组C试题及答案(完整版)

NoipXX初赛提高组C试题及答案(完整版)

NoipXX初赛提高组C试题及答案(完整版)Noipxx初赛提高组试题及答案(完整版)提高组C语言试题一、单项选择题(每题1.5分,共22.5分)。

1. 以下哪个是面向对象的高级语言( ). A. 汇编语言 B. C++ C. FORTRAN D. Basic2. 1TB代表的字节数量是( ). A. 2的10次方B. 2的20次方 C. 2的30次方 D. 2的40次方3. 二进制数00100100和00010101的和是( ). A. 00101000 B. 001010100 C. 01000101 D. 001110014. TCP协议属于哪一层协议( ). A. 应用层 B. 传输层 C. 网络层 D. 数据链路层 5. 以下几个32位IP地址中,书写错误的选项是( ). A. 162.105.128.27 B. 192.168.0.1 C. 256.256.129.1 D. 10.0.0.1 6. 在无向图中,所有定点的度数之和是边数的( )倍. A. 0.5 B. 1 C. 2 D. 4 7. 对长度位n的有序单链表,假设检索每个元素的概率相等,那么顺序检索到表中任一元素的平均检索长度为( ). A. n/2 B. (n+1)/2 C. (n-1)/2 D.n/4 8. 编译器的主要功能是( ). A. 将一种高级语言翻译成另一种高级语言 B. 将源程序翻译成指令 C. 将低级语言翻译成高级语言D. 将源程序重新组合 9. 二进制数111.101所对应的十进制数是( ). A. 5.625 B. 5.5 C. 6.125 D. 7.625 10. 假设有变量 int a, float x, y, 且 a=7, x=2.5, y=4.7, 那么表达式x+a%3*(int)(x+y)%2/4的值大约是( ). A. 2.500000 B. 2.750000 C. 3.500000 D. 0.000000 11. 有以下结构体说明和变量定义,如下图,指针p、q、r分别指向一个链表中的三个续结点。

2007年NOIP普及组初赛试题及参考答案

2007年NOIP普及组初赛试题及参考答案
│ 21
二、问题解答
1、(子集划分)将 n 个数{1,2,…,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=6,r=3 时,S(6,3)=_________ 。 (提示:先固定一个数,对于其余的 5 个数考虑 S(5,3)与 S(5,2),再分这两种 情况对原固定的数进行分析)。
一、选择题
11. 在下列关于计算机语言的说法中,正确的有( )。 A. 高级语言比汇编语言更高级,是因为它的程序的运行效率更高 B. 随着 Pascal、C 等高级语言的出现,机器语言和汇编语言已经退 出了历史舞台 C. 高级语言程序比汇编语言程序更容易从一种计算机移植到另一种 计算机上
D. C 是一种面向对象的高级计算机语言
│8
一、选择题
8. 冗余数据是指可以由其他数据导出的数据,例如,数据库中已存放了学生的数学、语文和 英语的三科成绩,如果还存放三科成绩的总分,则总分就可以看作冗余数据。冗余数据往往 会造成数据的不一致,例如,上面 4 个数据如果都是输入的,由于操作错误使总分不等于三 科成绩之和,就会产生矛盾。下面关于冗余数据的说法中,正确的是( )。 A. 应该在数据库中消除一切冗余数据 B. 用高级语言编写的数据处理系统,通常比用关系数据库编写的系统更容易消除冗余数据 C. 为了提高查询效率,在数据库中可以适当保留一些冗余数据,但更新时要做相容性检验 D. 做相容性检验会降低效率,可以不理睬数据库中的冗余数据

NOIP2007 初赛试题及答案提高组C

NOIP2007 初赛试题及答案提高组C

NOIP2007 初赛试题(提高组C)2008-08-03 15:09分类:默认分类字号:大中小信息学奥赛试题NOIP2007 初赛试题(提高组C)© 中国计算机学会20071第十三届全国青少年信息学奥林匹克联赛初赛试题(提高组C 语言二小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(共10 题,每题1.5 分,共计15 分。

每题有且仅有一个正确答案)。

1. 在以下各项中,()不是CPU 的组成部分。

A. 控制器B. 运算器C. 寄存器D. 主板E. 算术逻辑单元(ALU)2.在关系数据库中,存放在数据库中的数据的逻辑结构以()为主。

A. 二叉树B. 多叉树C.哈希表D. B+树E.二维表3.在下列各项中,只有()不是计算机存储容量的常用单位。

A. ByteB. KBC.MBD.UBE.TB4.ASCII 码的含义是()。

A. 二—十进制转换码B. 美国信息交换标准代码C. 数字的二进制编码D. 计算机可处理字符的唯一编码E. 常用字符的二进制编码5.在C 语言中,表达式23|2^5 的值是()A. 23B. 1C.18D.32E.246.在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))7.地面上有标号为A、B、C 的3 根细柱,在A 柱上放有10 个直径相同中间有孔的圆盘,从上到下依次编号为1,2,3,……,将A 柱上的部分盘子经过B 柱移入C 柱,也可以在B 柱上暂存。

如果B 柱上的操作记录为:“进,进,出,进,进,出,出,进,进,出,进,出,出”。

2007-2012年noip初赛提高组基础题

2007-2012年noip初赛提高组基础题

2007-2012年noip初赛提⾼组基础题2012年青少年信息学奥林匹克联赛初赛⾃测试题⼀、选择正确的答案1、关于图灵机下⾯的说法哪个是正确的:A)图灵机是世界上最早的电⼦计算机。

B)由于⼤量使⽤磁带操作,图灵机运⾏速度很慢。

C)图灵机只是⼀个理论上的计算模型。

D)图灵机是英国⼈图灵发明的,在⼆战中为破译德军的密码发挥了重要作⽤。

2、关于BIOS下⾯的说法哪个是正确的:A)BIOS是计算机基本输⼊输出系统软件的简称。

B)BIOS⾥包含了键盘、⿏标、声卡、图形界⾯显器等常⽤输⼊输出设备的驱动程序。

C)BIOS⼀般由操作系统⼚商来开发完成。

D)BIOS能提供各种⽂件拷贝、复制、删除以及⽬录维护等⽂件管理功能。

3、已知⼤写字母A的ASCII编码为65(⼗进制),则⼤写字母J的⼗六进制ASCII编码为:A) 48 B) 49 C) 50 D) 以上都不是4、在字长为16位的系统环境下,⼀个16位带符号整数的⼆进制补码为1111111111101101。

其对应的⼗进制整数应该是:A)19 B) -19 C) 18 D) -185、如果⼀张有60分钟的cd唱盘,其采样频率为44.1khz,采样数据为16位,双声道,那么它的容量所占⽤的存储空间为()。

A.400mbB.600mbC.500mbD.700mb6、下⾯四个不同的进制的数,最⼩的⼀个数是()A.(11011001)2B.(75)10C.(37)8D.(A7)167、中缀表达式(a-b)*(cd)的后缀表达式是()A. abcd*- ab-cd C. ab-*cd D. a-bcd *8、断电后计算机信息依然存在的部件为()A.寄存器 B. RAM存储器 C. ROM存储器 D. 运算器 E.控制器9、下列说法正确的是()A.解释程序是接受参数,按照某⼀样板产⽣机器语⾔的计算机程序B.BASIC语⾔程序通常需解释执⾏C.连接程序可以把经编译程序产⽣的⽬标程序变成可执⾏的机器语⾔程序D.就执⾏速度⽽⾔,编译程序⽐解释程序快E.PASCAL通常是先编译后执⾏10、在程序语⾔中,⼀个过程通常由()部分组成A.域名B.过程名C.形式参数表D.过程中的说明部分E.过程体⼆.不定项选择题(共10题,每题3分,共计30分。

NOIP2007提高组初赛试题与答案

NOIP2007提高组初赛试题与答案
y+= (q[1]*100-q[3])/(p[p[4]%3]*5); else
y+=20+(q[2]*100-q[3])/(p[p[4]%3]*5); printf("%d,%d\n", x,y); return 0;
© 中国计算机学会 2007
4
NOIP2007 初赛试题(提高组 C)
} /*注:本例中,给定的输入数据可以避免分母为 0 或数组元素下标越界。 */ 输入:6 6 5 5 3 输出:_______________
NOIP2007 初赛试题(提高组 C)
第十三届全国青少年信息学奥林匹克联赛初赛试题
( 提高组 C 语言 二小时完成 )
●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●●
一、 单项选择题 (共 10 题,每题 1.5 分,共计 15 分。每题有且仅有一个正确答案)。
1. 在以下各项中,( )不是 CPU 的组成部分。
B.有些编译系统可以检测出死循环 C. 死循环属于语法错误,既然编译系统能检查各种语法错误,当然也应该能检查出死循环 D. 死循环与多进程中出现的“死锁”差不多,而死锁是可以检测的,因而,死循环也是可以检测 的 E. 对于死循环,只能等到发生时做现场处理,没有什么更积极的手段
二、 不定项选择题 (共 10 题,每题 1.5 分,共计 15 分。每题正确答案的个数大于或等于 1。多选 或少选均不得分)。
但这一点还没有得到理论上的证实,也没有被否定 D. 一个问题如果是NP类的,与C有相同的结论
20. 近20年来,许多计算机专家都大力推崇递归算法,认为它是解决较复杂问题的强有力的工具。在下 列关于递归算法的说法中,正确的是( )。
© 中国计算机学会 2007
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{ ch[j/2]=ch[j]; j*=2; } else
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
相关文档
最新文档