NOIP2011提高组初赛试题-C++含答案

合集下载

NOIP 2011 提高组day1 题解 美少女战士原创

NOIP 2011 提高组day1 题解 美少女战士原创

NOIP 2011 提高组day1 题解美少女战士原创1.铺地毯(carpet.cpp/c/pas)【问题描述】为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。

一共有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】carpet.in carpet.out3 31 02 30 2 3 32 13 32 2【输入输出样例说明】如下图,1 号地毯用实线表示,2 号地毯用虚线表示,3 号用双实线表示,覆盖点(2,2)的最上面一张地毯是3 号地毯。

【输入输出样例 2】carpet.in carpet.out3 -11 02 30 2 3 32 13 34 5【输入输出样例说明】如上图,1 号地毯用实线表示,2 号地毯用虚线表示,3 号用双实线表示,点(4,5)没有被地毯覆盖,所以输出-1。

(不好意思,因为是从PDF中复制过来的,所以没有图,不过挺简单的,大家可以自己做一下)(嘿嘿,还是我的朋友智慧,我怎么就没想到用QQ截图)【数据范围】对于 30%的数据,有n≤2;对于 50%的数据,0≤a, b, g, k≤100;对于 100%的数据,有0≤n≤10,000,0≤a, b, g, k≤100,000。

NOIP提高组初赛历年试题及答案求解题篇(完整资料).doc

NOIP提高组初赛历年试题及答案求解题篇(完整资料).doc

【最新整理,下载后即可编辑】NOIP提高组初赛历年试题及答案求解题篇问题求解题(每次2题,每题5分,共计10分。

每题全部答对得5分,没有部分分)注:答案在文末提高组的问题求解题的知识点大多涉及计数问题、鸽巢原理、容斥问题、逻辑推理、递推问题、排列组合问题等。

NOIP2011-1.平面图可以画在平面上,且它的边仅在顶点上才能相交的简单无向图。

4个顶点的平面图至少有6条边,如图所示。

那么,5个顶点的平面图至多有_________条边。

NOIP2011-2.定义一种字符串操作,一次可以将其中一个元素移到任意位置。

举例说明,对于字符串“BCA”可以将A移到B 之前,变字符串“ABC”。

如果要将字符串“DACHEBGIF”变成“ABCDEFGHI”最少需要_________次操作。

NOIP2012-1. 本题中,我们约定布尔表达式只能包含p,q, r三个布尔变量,以及“与”(∧)、“或”(∨)、“非”(¬)三种布尔运算。

如果无论p, q,r如何取值,两个布尔表达式的值总是相同,则称它们等价。

例如,(p∨q)∨r和p∨(q∨r)等价,p∨¬p 和q∨¬q 也等价;而p∨q 和p∧q不等价。

那么,两两不等价的布尔表达式最多有_________个。

NOIP2012-2. 对于一棵二叉树,独立集是指两两互不相邻的节点构成的集合。

例如,图1有5个不同的独立集(1个双点集合、3个单点集合、1个空集),图2有14个不同的独立集。

那么,图3有_________个不同的独立集。

NOIP2013-1. 某系统自称使用了一种防窃听的方式验证用户密码。

密码是n个数s1,s2,…,sn,均为0或1。

该系统每次随机生成n个数a1,a2,…,an,均为0或1,请用户回答(s1a1+s2a2+…+snan)除以2的余数。

如果多次的回答总是正确,即认为掌握密码。

该系统认为,即使问答的过程被泄露,也无助于破解密码——因为用户并没有直接发送密码。

2011十七届noip提高组题目及答案

2011十七届noip提高组题目及答案

第十七届全国青少年信息学奥林匹克联赛初赛试题(提高组 Pascal语言两小时完成)一、单项选择题(共20题,每题1.5分。

共计30分。

每题有且仅有一个正确选项。

)1.在二进制下, +()= 。

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

noip提高组c初赛试题与答案

2009 第十五届全国青少年信息学奥林匹克联赛初赛试题提高组 C++ 语言 二小时完成 )全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效. 单项选择题 (共 10 题,每题分,共计 15 分。

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

)1、关于图灵机下面的说法哪个是正确的:图灵机是英国人图灵发明的,在二战中为破译德军的密码发挥了重要作 用。

2、关于BIOS 下面的说法哪个是正确的:BIOS 里包含了键盘、鼠标、声卡、图形界面显器等常用输入输出设备的 驱动程序。

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

3、已知大写字母A 的ASCII 编码为65(十进制),则大写字母J 的 十六进制ASCII 编码为:4、在字长为 16位的系统环境下,一个 16位带符号整数的二进制补码为 101。

其对应的十进制整数应该是:n 个分支结点(非叶结点)的非空满 k 叉树,k>=1,它的叶结点数 B) nk-1 C) (k+1)n-1 D. (k-1)n+16. 表达式 a*(b+c )-d 的后缀表达式是:A) abcd*+- B) abc+*d- C) abc*+d- D) -+*abcd7、最优前缀编码,也称 Huffman 编码。

这种编码组合的特点是对于较频繁使用 的元素给与较短的唯一编码,以提高通讯的效率。

下面编码组合哪一组不是 合法的前缀编码。

A )(00, 01, 10, 11)A) 图灵机是世界上最早的电子计算机。

B) 由于大量使用磁带操作,图灵机运行速度很慢。

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

D) A) BIOS 是计算机基本输入输出系统软件的简称。

B) C) BIOS 一般由操作系统厂商来开发完成。

D) A) 48 B) 49 C) 50 D)以上都不是 A) 19 B) -19 C) 18 D) -185、一个包含目为:A) nk + 1B ) (0,1,00,11)C )(0,10,110,111)D )(1,01,000,001)8、快速排序平均情况和最坏情况下的算法时间复杂度分别为:9、右图给出了一个加权无向图, 从顶点 V 0 开始用 prim 算法求最 小生成树。

noip-初赛模拟试题1(c语言含答案)演示教学

noip-初赛模拟试题1(c语言含答案)演示教学

NOIP 初赛模拟试题(2小时C语言普及组)姓名成绩一、选择题(共20题,每题1.5分,共计30分。

)1.微型计算机的性能主要取决于()。

A)内存B)主板C)中央处理器D)硬盘E)显示器2.设T是一棵有n个顶点的树,以下说法不正确的是()。

A.T是联通的,无环的。

B.T是联通的,有n-1条边。

C.T是无环的,有n-1条边。

D.以上都不对。

3.能将高级语言程序转换为目标程序的是( ).A)调试程序B) 连接程序C)编辑程序D)编译程序4.若A=45,B=38,C=78则A^ B & C=( )A)38 B)18 C)11 D)455.计算机病毒传染的必要条件之一是( ) 。

A)在内存中运行病毒程序B)对磁盘进行读写操作C)在内存中运行含有病毒的可执行程序D)复制文件E)删除文件6. TCP/IP协议共有( )层协议A)3 B)4 C)5 D)6 E)77.192.168.0.1是属于( ).A)A类地址B)B类地址C)C类地址D)D类地址E)E类地址8.对给定的整数序列(54,73,21,35,67,78,63,24,89)进行从小到大的排序时,采用快速排序的第一趟扫描的结果是( ).A)(24,21,35,54,67, 78,63,73,89)B)(24,35,21,54,67, 78,63,73,89)C)(24,21,35,54,67, 63,73,78,89)D)(21,24,35,54,63, 67,73,78,89)9.一棵n个结点的完全二叉树,则二叉树的高度h为( ).A)n/2 B)log2n C)(log2n)/2 D) [log2n]+1 E)2n-110.下图对该图进行广度优先拓朴排序得到的顶点序列正确的是( ).A)1,2,3,4,5,6B)1,3,2,4,5,6C)1,3,2,4,6,5D)1,2,3,4,6,5,E)1,3,2,4,5,6A)采用二进制表示数据和指令;B)采用”存储程序”工作方式C)计算机硬件有五大部件(运算器、控制器、存储器、输入和输出设备)D)结构化程序设计方法12.下列不属于输入设备的是( ).A)打印机B)扫描仪C)光笔D)鼠标13.算式(1000)10-(101)16 - (11)8的结果是( ).A)(891)10 B)(886)8C)(10111000011)2D)(2DE)1614.下面关于算法的不正确的说法是( )A)算法必须有输出B)算法必须在计算机上用某种语言实现C)算法不一定有输入D)算法必须在有限步执行后能结束E)算法的每一步骤必须有确切的定义15.下列关于十进制数100的正确说法是( ).A)原码为01101100BB)反码为64H C)反码为9BH D)补码为65H16.关于windows系统中的窗口和对话框的说法正确的是( ).A)对话框能移动和改变大小B)窗口不能移动,能改变大小C)对话框只能移动,不能改变大小D)对话框不能移动但能改变大小E)窗口能移动和但不能改变大小17.若A=true,B=false,C=true,D=false,以下逻辑运算表达式真的有()A.(A∧B)∨(C∧D∨¬A)B.((¬A∧B)∨C)∧¬BC.(B∨C∨D)∧D∧¬AD. ¬A∧(D∨¬ C) ∧B18.下列关于排序说法不正确的是( ).A)插入排序、冒泡排序是稳定的B)选择排序的时间复杂性为O(n2)C)选择排序、希尔排序、快速排序、堆排序是不稳定的D)希尔排序、快速排序、堆排序的时间复杂性为O(nlog2n)E)占用内存空间大的是归并排序。

noip初赛试题及答案

noip初赛试题及答案

noip初赛试题及答案**NOIP初赛试题及答案**一、选择题(每题2分,共40分)1. 计算机中存储数据的最小单位是()。

A. 字节B. 位C. 字D. 双字答案:B2. 在计算机中,1KB等于()。

A. 1024字节B. 512字节C. 256字节D. 1000字节答案:A3. 下列哪种设备不是计算机的输入设备()。

A. 键盘B. 鼠标C. 显示器D. 扫描仪答案:C4. 在计算机中,二进制数1011转换为十进制数是()。

A. 11B. 12C. 13D. 14答案:A5. 计算机病毒是一种()。

A. 计算机硬件B. 计算机软件C. 生物病毒D. 计算机程序答案:D6. 下列哪种文件格式不是图片格式()。

A. JPGB. BMPC. MP3D. PNG答案:C7. 计算机操作系统的主要功能是()。

A. 管理计算机硬件B. 管理计算机软件C. 管理计算机资源D. 所有选项都是答案:D8. 以下哪个选项不是计算机网络的组成部分()。

A. 网络协议B. 网络硬件C. 网络软件D. 网络用户答案:D9. 在计算机编程中,以下哪个关键字用于定义一个类()。

A. classB. functionC. structD. interface答案:A10. 在计算机编程中,以下哪个关键字用于定义一个方法()。

A. classB. functionC. methodD. procedure答案:C二、填空题(每题2分,共20分)1. 在计算机中,一个字节由____位组成。

答案:82. 计算机的CPU是计算机的____。

答案:中央处理器3. 计算机的RAM是____存储器。

答案:随机访问4. 在计算机编程中,____是一种用于存储数据的数据结构。

答案:数组5. 在计算机编程中,____是一种用于存储键值对的数据结构。

答案:哈希表6. 计算机的USB接口是一种____接口。

答案:通用串行总线7. 在计算机编程中,____是一种用于控制程序流程的语句。

2010-2013选择题解析

2010-2013选择题解析

2010-2013选择题及2013、2010解析第十九届2013全国青少年信息学奥林匹克联赛初赛提高组参考答案.CCF NOIP2011提高组(C语言)参考答案与评分标准一、单项选择题(共10题,每题1.5分,共计15分)1 2 3 4 5 6 7 8 9 10B B A D B ACD B A二、不定项选择题(共10题,每题1.5分,共计15分,多选或少选均不得分)1 2 3 4 5 6 7 8 9 10 CD ABCD AB BC BC ABD CD A BCD ABC 2012noip 选择题答案2013选择题解析1、C语言的数据类型是:C语言中数据类型(整形,浮点型,字符型,无值型)整型数说明加上不同的修饰符, 整型数有以下几种类型; signed short int 有符号短整型数说明。

简写为short或int, 字长为2字节共16位二进制数,数的范围是-32768~32767。

signed long int 有符号长整型数说明。

简写为long, 字长为4字节共32位二进制数,数的范围是-2147483648~2147483647。

unsigned short int 无符号短整型数说明。

简写为unsigned int, 字长为2字节共16位二进制数, 数的范围是0~65535。

unsigned long int 无符号长整型数说明。

简写为unsigned long, 字长为4字节共32位二进制数, 数的范围是0~4294967295。

浮点型(float) 一、浮点数说明C中有以下两种类型的浮点数:float 单浮点数。

字长为4 个字节共32 位二进制数,数的范围是3.4x10-38E~3.4x10+38E。

double 双浮点数。

字长为 8个字节共 64 位二进制数,数的范围是 1.7x10-308E~1.7x10+308E。

说明: 浮点数均为有符号浮点数, 没有无符号浮点数。

2、数的进制转换:10进制转为其它进制用倒除法。

1999年至2011年历年信息学奥赛提高组初赛答案

1999年至2011年历年信息学奥赛提高组初赛答案

第十七届(2011年)信息学奥赛提高组初赛试题答案一、单项选择题(共10题,每题1.5分,共计15分)1 2 3 4 5 6 7 8 9 10B B A D B ACD B A二、不定项选择题(共10题,每题1.5分,共计15分,多选或少选均不得分)1 2 3 4 5 6 7 8 9 10CD ABCD AB BC BC ABD CD A BCD ABC 三、问题求解(共2题,每题5分,共计10分)1.92.4四、阅读程序写结果(共4题,每题8分,共计32分)1.32.1 2 5 13 343.1504.57344五、完善程序(第1题,每空2分,第2题,每空3分,共计28分)(说明:以下各程序填空可能还有一些等价的写法,各省可请本省专家审定和上机验证,不一定上报科学委员会审查)1.①ans.num[i + j - 1]②ans.num[i] := ans.num[i] mod 10;③ans.num[i] + a.num[i] + b.num[i];④ans.num[i] mod 2 (或ans.num[i] and 1)⑤inc(ans.len) (或ans.len := ans.len + 1)⑥ a.len < b.len⑦ord('0')(或48)⑧times(middle, middle), target2.①inc(num) (或num := num + 1)②j := i③solve(left, j - 1, deep + 1)④solve(j + 1, right, deep + 1)第十六届(2010年)信息学奥赛初赛试题答案一、单项选择题(共10题,每题1.5分,共计15分)1 2 3 4 5 6 7 8 9 10C A AD B D C B C B二、不定项选择题(共10题,每题1.5分,共计15分,多选或少选均不得分)1 2 3 4 5 6 7 8 9 10ACD AD ABD AC B B D D BCD ABC三、问题求解(共3题,每题5分,共计15分)1.yyxy xx yyxy xyx xx xyx 2.12 3.18四、阅读程序写结果(共4题,每题7分,共计28分)1.16 2.1 2 3 5 6 7 9 10 14 3.4 4.1 6 9 54 8 3 2 7五、完善程序(第1空2分,其余10空,每空2.5分,共计27分)(说明:以下各程序填空可能还有一些等价的写法,各省可请本省专家审定和上机验证,不一定上报科学委员会审查)1.① num <= 2(或num < 3 或num = 2)② go(LEFT_TO_RIGHT)③ pos[i] = LEFT(或LEFT = pos[i])④ time[i] + go(RIGHT_TO_LEFT)(或go(RIGHT_TO_LEFT) + time[i])⑤ pos[i] := LEFT本小题中,LEFT可用true代替,LEFT_TO_RIGHT可用true代替,RIGHT_TO_LEFT可用false 代替。

2011NOIP初赛Pascal提高组试题

2011NOIP初赛Pascal提高组试题

第十七届全国青少年信息学奥林匹克联赛初赛试题( 提高组 Pascal 语言 两小时完成 )●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●●一、单项选择题(共20题,每题1.5分,共计30分。

每题有且仅有一个正确选项。

)1.在二进制下,1101001 + ( ) = 1110110。

A. 1011B. 1101C. 1010D. 11112. 字符“A ”的ASCII 码为十六进制41,则字符“Z ”的ASCII 码为十六进制的( )。

A. 66B. 5AC. 50D. 视具体的计算机而定3.右图是一棵二叉树,它的先序遍历是( )。

A. ABDEFCB. DBEFACC. DFEBCAD. ABCDEF4.寄存器是( )的重要组成部分。

A. 硬盘B. 高速缓存C. 内存D. 中央处理器(CPU )5.广度优先搜索时,需要用到的数据结构是( )。

A. 链表B. 队列C. 栈D. 散列表6.在使用高级语言编写程序时,一般提到的“空间复杂度”中的“空间”是指( )。

A. 程序运行时理论上所占的内存空间B. 程序运行时理论上所占的数组空间C. 程序运行时理论上所占的硬盘空间D. 程序源文件理论上所占的硬盘空间7.应用快速排序的分治思想,可以实现一个求第K 大数的程序。

假定不考虑极端的最坏情况,理论上可以实现的最低的算法时间复杂度为( )。

A. O(n 2)B. O(n log n)C. O(n)D. O(1)8.为解决Web 应用中的不兼容问题,保障信息的顺利流通,( )制定了一系列标准,涉及HTML 、XML 、CSS 等,并建议开发者遵循。

A. 微软B. 美国计算机协会(ACM )C. 联合国教科文组织D. 万维网联盟(W3C ) A B CD E F9. 体育课的铃声响了,同学们都陆续地奔向操场,按老师的要求从高到矮站成一排。

每个同学按顺序来到操场时,都从排尾走向排头,找到第一个比自己高的同学,并站在他的后面。

(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找最长的路径的程序。

NOIP2011题解

NOIP2011题解
3.Bus 观光公交 算法 1: 对于 10%的数据 K=0,即没有加速器的情况。设 time[i]表示公交到 i 景点的时间, num[i]表示 i 为起点的所有乘客达到 i 景点的最晚时间。则 Time[i]=max(time[i-1],num[i-1])+d[i-1] 则答案为∑time[b[i]]-t[i] i∈[1,m] 复杂度:O(n) 期望分数 10 分 算法 2: 对于 20%的数据 K=1,即只能使用一个加速器,由于 N<=1000,于是我们可以依次 尝试减少每一个 d[i],然后继续执行算法 1。 复杂度:O(n^2) 期望分数 20 分 若同时结合算法 1 可以得到 30 分 算法 3: 观察∑time[b[i]]-t[i] i∈[1,m]等价于∑time[b[i]]-∑t[i] i∈[1,m],由于∑ t[i]是定值,所以我们需要让∑time[b[i]]尽可能小。 观察 Time[i]=max(time[i-1],num[i-1])+d[i-1],若我们使 d[i-1]减少 1,则
3 / 16
复杂度:O(n^2m) 期望分数 30 分 算法 3:
对于算法 1,我们需要依次枚举每一个区间,后枚举每一个区间内的所有矿石,由 于区间可能重复的非常多,所以我们做了很多“无用功”。对于当前参数 w,我们 可以预处理出一个前缀和 cnt[i]表示前 i 个矿石 w[i]>=w 的个数,sum[i]表示前 i 个矿石 w[i]>=w 的价值和,则递推式为: 边界条件:cnt[0]=0 sum[0]=0 若 w[i]>=w 则
2. Hotel 选择客栈 按照题目要求的进行模拟,每次选择两个进行判断,若满足以下条件: (1)两个客栈颜色相同 (2)两个客栈中间(包含两个客栈)中存在一家咖啡店最低消费小于等于 p 的 即算作一个满足条件的解,题目要求求出解的个数。 算法 1: 枚举两个客栈,判断颜色是否相同,并顺序枚举求两个客栈的最小值,看是否小于 等于 p。 复杂度 O(N^3) 期望得分 30-40 分 算法 2: 对于求两个客栈的最小值问题,为经典的 RMQ 问题,可以用线段树维护一段区间的 最小值。 复杂度 O(NlogN+N^2logN) 期望得分 50 分 算法 3: 对于思路 2,可以用 ST 算法 O(1)时间求出两个区间的最小值。 复杂度 O(NlogN+N^2) 期望得分 50-60 分 具体请参考程序 2 算法 4: 我们发现这个 RMQ 问题有很强的特殊性,由于我们要枚举所有的区间,按照双重循

NOIP2011提高组初赛试题_C++含答案

NOIP2011提高组初赛试题_C++含答案

NOIP2011第十七届全国青少年信息学奥林匹克联赛初赛试题(提高组 C++语言两小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(共10题,每题1.5分,共计15分。

每题有且仅有一个正确选项。

)1.在二进制下,1011001 + ()= 1100110。

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)A.诺贝尔物理学奖B.约翰·冯·诺依曼奖C.图灵奖D.高德纳奖(Donald E. Knuth Prize)二、不定项选择题(共10题,每题1.5分,共计15分。

noip2011初赛试题及答案(完美Word版)-推荐下载

noip2011初赛试题及答案(完美Word版)-推荐下载

第十七届全国青少年信息学奥林匹克联赛初赛试题(提高组Pascal语言两小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(共20题,每题1.5分。

共计30分。

每题有且仅有一个正确选项。

)B 1.在二进制下,1100011 +()= 1110000。

A.1011B.1101C.1010 D.1111B 2.字符“A”的ASCII码为十六进制41,则字符“Z”的ASCII码为十六进制的()。

A.66 B.5A C.50 D.视具体的计算机而定A 3.右图是一棵二叉树,它的先序遍历是()。

A.ABDEFC B.DBEFAC C.DFEBCA D.ABCDEFD 4.寄存器是()的重要组成部分。

A.硬盘B.高速缓存C.内存D.中央处理器(CPU)B 5.广度优先搜索时,需要用到的数据结构是()。

A.链表B.队列C.栈D.散列表A 6.在使用高级语言编写程序时,一般提到的“空间复杂度”中的“空间”是指()。

A.程序运行时理论上所占的内存空间B.程序运行时理论上所占的数组空间C.程序运行时理论上所占的硬盘空间D.程序源文件理论上所占的硬盘空间C 7.应用快速排序的分治思想,可以实现一个求第K大数的程序。

假定不考虑极端的最坏情况,理论上可以实现的最低的算法时间复杂度为()。

A.O(n2)B.O(n log n)C.O(n)D.O(1)D 8.为解决Web应用中的不兼容问题,保障信息的顺利流通,()制定了一系列标准,涉及HTML、XML、CSS等,并建议开发者遵循。

A.微软B.美国计算机协会(ACM)C.联台国教科文组织D.万维网联盟(W3C)B 9.体育课的铃声响了,同学们都陆续地奔向操场,按老师的要求从高到矮站成一排。

每个同学按顺序来到操场时,都从排尾走向排头,找到第一个比自己高的同学,并站在他的后面。

这种站队的方法类似于()算法。

A.快速排序B.插入排序C.冒泡排序D.归并排序A 10.1956年()授予肖克利(William Shockley)、巴丁(John Bardeen)和布拉顿(Walter Brattain),以表彰他们对半导体的研究和晶体管效应的发现。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

祝你!你通关了!之,看得多,得多,拼得多,你就考得多??NOIP2011-1 .#include#includeusing 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;< p="">return 0;}输入:114 5 6 6 4 3 3 2 3 2 1一步步模拟,注意输出的是sum超出循环条件时的i 值(中位数),而不是sum ,也不是a[x]输出: 3NOIP2011-2 .#include using namespace std; int n;void f2(int x,int y); void f1(int x,int y){if(x<n)< p="">f2(y,x+y);}void f2(int x,int y){cout<<x<<' ';<="" p="">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 34 NOIP2011-3 .#includeusing 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;< p="">return 0;}输入:4 61 2 102 3 203 4 304 1 401 3 502 4 60一看就知这是深搜算法(DFS ),输入是个四个顶点的无向图(邻接矩阵如下):如len>ans,则ans=len,可以说明这是个在图中用DFS找最长的路径的程序。

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分别指向一个链表中的三个续结点。

NOIP2011普及组初赛试题及答案C

NOIP2011普及组初赛试题及答案C

NOIP2011普及组初赛试题C++版第十七届全国青少年信息学奥林匹克联赛初赛试题一、单项选择题(共20题,每题1.5分,共计30分。

每题有且仅有一个正确选项。

)1.在二进制下,1011001 + () = 1100110。

A.1011 B.1101 C.1010 D.11112.字符“0”的ASCII码为48,则字符“9”的ASCII码为()。

A.39 B.57 C.120 D.视具体的计算机而定3.一片容量为8G的SD卡能储存大约()张大小为2MB的数码照片。

A.1600 B.2000 C.4000 D. 160004.摩尔定律(Moore's law)是由英特尔创始人之一戈登·摩尔(Gordon Moor)提出来的。

根据摩尔定律,在过去几十年一级在可预测的未来纪念,单块集成电驴的集成度大约每()个月翻一番。

A.1 B. 6 C. 18 D. 365.无向完全图是图中每对顶点之间都恰好有一条边的简单图。

已知无向完全图G有7个顶点,则它共有()条边。

A.7 B.21 C.42 D.496.寄存器是()的重要组成部分。

A.硬盘 B.高速缓存 C.内存 D.中央处理器(CPU)7.如果根结点的深度记为1,则一棵恰有2011个叶结点的二叉树的深度最少是()。

A.10 B.11 C.12 D.138.体育课的铃声响了,同学们都陆续地奔向操场,按老师的要求从高到矮站成一排。

每个同学按顺序来到操场时,都从排尾走到排头,找到第一个比自己高的同学,并站在他的后面。

这种站队的方法类似于()算法。

A.快速排序 B.插入排序 C.冒泡排序 D.归并排序9.一个正整数在二进制下有100位,则它在十六进制下有()位。

A.7 B.13 C.25 D.不能确定10.有人认为,在个人电脑送修前,将文件放入回收站中就是已经将其删除了。

这种想法是()。

A.正确的,将文件放入回收站以为着彻底删除、无法恢复B.不正确的,只有将回收站清空后,才意味着彻底删除、无法恢复C.不正确的,即使回收站清空,文件只是被标记为删除,仍可能通过回复软件找回D.不正确的,只要在硬盘上出现过的文件,永远不可能被彻底删除11.广度优先搜索时,需要用到的数据结构是()。

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

NOIP2011第十七届全国青少年信息学奥林匹克联赛初赛试题(提高组C++语言两小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(共10题,每题1.5分,共计15分。

每题有且仅有一个正确选项。

)1.在二进制下,1011001 + ()= 1100110。

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)A.诺贝尔物理学奖B.约翰·冯·诺依曼奖C.图灵奖D.高德纳奖(Donald E. Knuth Prize)二、不定项选择题(共10题,每题1.5分,共计15分。

每题正确答案的个数不少于1。

多选或少选均不得分)。

1.如果根结点的深度记为1,则一棵恰有2011个叶子结点的二叉树的深度可能是()。

A.10 B.11 C.12 D.20112.在布尔逻辑中,逻辑“或”的性质有()。

A.交换律:PVQ = QVPB.结合律:PV(QVR)=(PVQ)VRC.幂等律:PVP = PD.有界律:PV1 = 1(1表示逻辑真)3.一个正整数在十六进制下有100位,则它在二进制下可能有()位。

A.399 B.400 C.401 D.4044.汇编语言()。

A.是一种与具体硬件无关的程序设计语言B.在编写复杂程序时,相对于高级语言而言代码量大,且不易调试C.可以直接访问寄存器、内存单元、I/O端口D.随着高级语言的诞生,如今已被完全淘汰,不再使用5.现有一段文言文,要通过二进制哈夫曼编码进行压缩。

简单起见,假设这段文言文只由4个汉字“之”、“乎”、“者”、“也”组成,它们出现的次数分别为700、600、300、400。

那么,“也”字的编码长度可能是()。

A.1 B.2 C.3 D.46.生物特征识别,是利用人体本身的生物特征进行身份认证的一种技术。

目前,指纹识别、虹膜识别、人脸识别等技术已广泛应用于政府、银行、安全防卫等领域。

以下属于生物特征识别技术及其应用的是()。

A.指静脉验证B.步态验证C.ATM机密码验证D.声音验证7.对于序列“7、5、1、9、3、6、8、4”,在不改变顺序的情况下,去掉()会使逆序对的个数减少3。

A.7 B.5 C.3 D.68.计算机中的数值信息分为整数和实数(浮点数)。

实数之所以能够表示很大或者很小的数,是由于使用了()。

A.阶码B.补码C.反码D.较长的尾数9.对右图使用Dijkstra算法计算S点到其余各点的最短路径长度时,到B点的距离d[B]初始时赋为8,在算法的执行过程中还会出现的值有()。

A.3 B.7 C.6 D.510.为计算机网络中进行数据交换而建立的规则、标准或约定的集合称为网络协议。

下列英文缩写中,()是网络协议A.HTTP B.TCP/IP C.FTP D.WWW三.问题求解(共2题,每空5分,共计10分)1.平面图可以在画在平面上,且它的边仅在顶点上才能相交的简单无向图。

4个顶点的平面图至少有6条边,如右图所示。

那么,5个顶点的平面图至少有条边。

2.定义一种字符串操作,一次可以将其中一个元素移到任意位置。

举例说明,对于字符串“BCA”可以将A移到B之前,变字符串“ABC”。

如果要将字符串“DACHEBGIF”变成“ABCDEFGHI”最少需要________次操作。

四.阅读程序写结果(共4题,每题8分,共计32分)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输出: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;return 0;}输入:30输出:_______________3.#include<iostream>using namespace std;const int V=100;int n,m,ans,e[V][V];。

bool visited[V];void dfs(int x,int len){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 50。

2 4 60输出:______________4.#include<iostream>#include<cstring>#include<string>using namespace std;const int SIZE=10000;const int LENGTH=10;int n,m,a[SIZE][LENGTH];int h(int u,int v){int ans,i;ans=0;for(i=1;i<=n;i++)if( a[u][i]!=a[v][i])ans++;return ans;}int main(){int sum,i,j;cin>>n;memset(a,0,sizeof(a));m=1;while(1){i=1;while( (i<=n) && (a[m][i]==1) )i++;if(i>n)break;m++;a[m][i]=1;for(j=i+1;j<=n;j++)a[m][j]=a[m-1][j];}sum=0;for(i=1;i<=m;i++)for(j=1;j<=m;j++)sum+=h(i,j);cout<<sum<<endl;return 0;}输入:7输出:_________五.完善程序(第1题,每空2分,第2题,每空3分,共28分)1.(大整数开方)输入一个正整数n(1≤n≤10100),试用二分法计算它的平方根的整数部分。

#include<iostream>#include<string>using namespace std;const int SIZE=200;struct hugeint{int len,num[SIZE];};//其中len表示大整数的位数;num[1]表示个位,num[2]表示十位,以此类推hugeint times(hugeint a,hugeint b)// 计算大整数a和b的乘积{int i,j;hugeint ans;memset(ans.num,0,sizeof(ans.num));for(i=1;i<=a.len;i++)for(j=1;j<=b.len;j++)①+=a.num[i]*b.num[j];for(i=1;i<=a.len+b.len;i++){ans.num[i+1]+=ans.num[i]/10;②;}if(ans.num[a.len+b.len]>0)ans.len=a.len+b.len;elseans.len=a.len+b.len-1;return ans;}hugeint add(hugeint a,hugeint b)//计算大整数a和b 的和{int i;hugeint ans;memset(ans.num,0,sizeof(ans.num));if(a.len>b.len)ans.len=a.len;elseans.len=b.len;for(i=1;i<=ans.len;i++){ans.num[i]+= ③;ans.num[i+1]+= ans.num[i]/10;ans.num[i]%=10;}if(ans.num[ans.len+1]>0)ans.len++;return ans;}hugeint average(hugeint a,hugeint b)//计算大整数a和b的平均数的整数部分{int i;hugeint ans;ans=add(a,b);for(i=ans.len;i>=2;i--){ans.num[i-1]+=( ④)*10;ans.num[i]/=2;}ans.num[1]/=2;if(ans.num[ans.len]==0)ans.len--;return ans;}hugeint plustwo(hugeint a)// 计算大整数a加2之后的结果{int i;hugeint ans;ans=a;ans.num[1]+=2;i=1;while( (i<=ans.len)&&(ans.num[i]>=10) ){ ans.num[i+1]+=ans.num[i]/10;ans.num[i]%=10;i++;}if(ans.num[ans.len+1]>0)⑤;return ans;}bool over(hugeint a,hugeint b)// 若大整数a>b则返回true,否则返回false {int i;if( ⑥)return false;if( a.len>b.len )return true;for(i=a.len;i>=1;i--){if(a.num[i]<b.num[i])return false;if(a.num[i]>b.num[i])return true;}return false;}int main(){string s;int i;hugeint target,left,middle,right;cin>>s;memset(target.num,0,sizeof(target.num));target.len=s.length();for(i=1;i<=target.len;i++)target.num[i]=s[target.len-i]- ⑦;memset(left.num,0,sizeof(left.num));left.len=1;left.num[1]=1;right=target;do{middle=average(left,right);if(over( ⑧))right=middle;elseleft=middle;}while(!over(plustwo(left),right) );for(i=left.len;i>=1;i--)cout<<left.num[i];return 0;}2.(笛卡尔树)对于一个给定的两两不等的正整数序列,笛卡尔树是这样的一棵二叉树:首先,它是一个最小堆,即除了根结点,每个节点的权值都大雨父节点的权值;其次,它的中序遍历恰好就是给定的序列。

相关文档
最新文档