noip2010提高组PASCAL初赛试题和答案

合集下载

noip2010提高组PASCAL初赛试题和答案

noip2010提高组PASCAL初赛试题和答案

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

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

)1.与16进制数 A1.2等值的10进制数是()A.101.2B.111.4C.161.125D.177.252.一个字节(byte)由()个二进制组成。

A.8B.16C.32D.以上都有可能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. exeB. comC.dllD. 以上都不是5.如果在某个进制下等式7*7=41成立,那么在该进制下等式12*12=()也成立。

A. 100B. 144C. 164D. 1966.提出“存储程序”的计算机工作原理的是()。

A. 克劳德•香农B.戈登•摩尔C. 查尔斯•巴比奇D. 冯•诺依曼7.前缀表达式“+ 3 * 2 + 512 ” 的值是()。

A. 23B. 25C. 37D. 658.主存储器的存取速度比中央处理器(CPU)的工作速度慢的多,从而使得后者的效率受到影响。

而根据局部性原理,CPU所访问的存储单元通常都趋于一个较小的连续区域中。

于是,为了提高系统整体的执行效率,在CPU中引入了( )。

A. 寄存器B.高速缓存C. 闪存D.外存9.完全二叉树的顺序存储方案,是指将完全二叉树的结点从上到下、从左到右依次存放到一个顺序结构的数组中。

假定根结点存放在数组的1号位置上,则第k号结点的父结点如果存在的话,应当存放在数组中的()号位置。

A.2kB.2k+1C. k/2下取整D.(k+1)/210.以下竞赛活动中历史最悠久的是()。

A. NOIPB. NOIC. IOID. APIO二、不定项选择题(共10题,每题1.5分,共计15分。

NOIP初赛知识点2010(提高组)

NOIP初赛知识点2010(提高组)

◆ 计算机结构与组成原理 ◆ 基本的数学知识 (集合的运算、排列与组合)
◆ 计算机结构与组成原理
一、计算机发展及应用
1、第一台电子计算机的诞生: ENIAC
1946年,世界上第一台数字式电于计算机是由美固宾夕法尼亚大学的物理 学家约翰·莫克利(John Mauchly)和工程师普雷斯伯·埃克特 (J.hesper.Eckert)领导研制的取名为ENIAC(Elecotmnic Nurnerical Integrator And Calculator)的计算杌。
)存储器 (NOIP7) D)高速缓冲
C)可擦除可编程只读
4、下面哪个部件对于个人桌面电脑的正常运行不是必需的( )。NOIP10 A.CPU B. 图形卡(显卡) C. 光驱 D. 主板 E. 内存 5、用静电吸附墨粉后转移到纸张上,是哪种输出设备的工作方式( )。NOIP10 A.针式打印机 B. 喷墨打印机 C. 激光打印机 D. 笔式绘图仪 E. 喷墨绘 图仪 6、下列哪个(些)不是计算机的存储设备( )。NOIP10 A.文件管理器 B. 内存 C. 显卡 D. 硬盘 E. U盘 7 、下列说法中正确的有( )。NOIP10 A.CPU的基本功能就是执行指令。 B.CPU的主频是指CPU在1秒内完成的指令周期数,主频越快的CPU速度一定越快。 C.内部构造不同的CPU运行相同的机器语言程序,一定会产生不同的结果。 D.在一台计算机内部,一个内存地址编码对应唯一的一个内存单元。 E.数据总线的宽度决定了一次传递数据量的大小,是影响计算机性能的因素之 一。 8、彩色显示器所显示的五彩斑斓的色彩,是由哪三色混合而成的( )。NOIP10 A.红 B. 白 C. 蓝 D. 绿 E. 橙 9、下列哪个(些)是64位处理器( )。NOIP10 A. Intel Itanium B. Intel Pentium III C. AMD Athlon64 D. AMD Opteron E. IBM Power 5 C,C,C,ADE,ACD,ACDE

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

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

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

NOIP提高组初赛高清试题和答案

NOIP提高组初赛高清试题和答案
第二十届全国青少年信息学奥林匹克联赛初赛 提高组参考答案
一、单项选择题(共 15 题,每题 1.5 分,共计 22.5 分)
1
2
3
Байду номын сангаас
4
5
6
7
8
B
D
D
B
C
C
B
B
9
10
11
12
13
14
15
D
A
D
C
C
B
C
二、不定项选择题(共 5 题,每题 1.5 分,共计 7.5 分;每题有一个或多个正确选项,没有部分分)
3
(4)
area:=0
area=0
3
(5) rowsum[i,last]-rowsum[i,first-1] rowsum[i][last]-rowsum[i,first-1]
3
五、完善程序(共计 28 分,以下各程序填空可能还有一些等价的写法,由各省赛区组织本省专家审定及 上机验证,可以不上报 CCF NOI 科学委员会复核)
Pascal 语言
C++语言
C 语言
分值
1. (1)
n
2.5
(2)
0
2.5
(3)
stack2[top2]:=stack1[top1]
stack2[top2]=stack1[top1]
1
2
3
4
5
AB
BCD
ABCDE
AC
BD
三、问题求解(共 2 题,每题 5 分,共计 10 分;每题全部答对得 5 分,没有部分分) 1. 102 2. 15
四、阅读程序写结果(共 4 题,每题 8 分,共计 32 分) 1. 8 2. 20 3. 2 5 6 3 4 7 1 4. 3 6 9 1 5 10 4 11 8 2 7

NOIP2010信息学奥赛初赛普及组模拟试题(二)

NOIP2010信息学奥赛初赛普及组模拟试题(二)

NOIP2010初赛模拟试题(六)(普及 Pascal语言二小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一.单项选择题(共20题,每题1.5分,共计30分。

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

)1、.在所有由两个1和六个0组成的8位二进制整数(补码)中,最小的数是:()A.-127B.-64 C.-128 D.-652、.在一棵二叉树结点的先根序列、中根序列和后根序列中,所有叶子结点的先后顺序()A.都不相同B.完全相同C.先序和中序相同,而与后序不同D.中序和后序相同,而与先序不同3、下面有效的IP地址是:()A.202.280.130.45 B.130.192.33.45C.192.256.130.45 D.280.192.33.4564、一台具有1024*768分辨率、可显示65 536种颜色的显示器,其显示适配器(显示卡)上显示存储器容量的配置为:()A.512K B.1MB C.大于1.6MB,小于2MB D.2MB5、进行二分法查找,则线性表()A.必须顺序方式存储B.必须以链接方式存储,且数据元素已按值排好序C.必须以链接方式存储D.必须以顺序方式存储,且数据元素已按值排好序6、机器语言是用()编写的。

A.二进制码B.ASCII码C.十六进制码D.国标码7、一棵含有101个结点的完全二叉树存储在数组A[1..101]中,对1≤k≤101,若 A[k]是叶子结点,则k的最小值是:()A.51 B.50 C.49 D.488、不同的计算机,其指令系统也不相同,这主要取决于()A. 所用的操作系统B. 系统的总体结构C. 所用的CPUD. 所用的程序设计语言9、计算机主机是由CPU 与()构成的。

A.控制器B。

输入、输出设备C.运算器D.内存储器10、计算机系统总线上传送的信号有()。

A.地址信号与控制信号B.数据信号、控制信号与地址信号C.控制信号与数据信号D.数据信号与地址信号11、计算机的运算速度取决于给定的时间内,它的处理器所能处理的数据量。

深入Noip2010初赛试题和全解

深入Noip2010初赛试题和全解

作者:钟野梓序今年Noip2010初赛刚结束,网上便铺天盖地地响起了“今年初赛好容易”“分数线一定很高,怎么办……”之类的声音。

确实,自2008年起,Noip初赛难度确有逐年下降的趋势,然而这并不是出题水平降低的缘故,相反,我认为这是中国计算机协会(下称CCF)对于N oip考核目的的审视和改变所导致的必然结果。

因此,我试图通过深入解析本届Noip初赛试囗题,来探寻这种变化下面深层的规律,从而令信息学竞赛选手能更好地备战往后数届的Noip初赛,让初赛不再成为一个问题。

由于条件所限,本文仅以Pascal语言的提高组试囗题作为对象进行分析,相对于普及组而言提高组试囗题一向具有较高的难度和较好的区分度,作为研究对象是个很好的选择;至于说语言的选择,仅是因为笔者个人选择原因。

一、概况本届题目在设置方面与往年相似,由选择题(普及组仅有单项选择题,提高组则有单项选择题与不定项选择题)、问题求解、阅读程序写结果及完善程序四大部分组成;但值得注意的是,今年提高组试囗题的分值设计与往年出现了较大的不同,除了选择题仍然是30分(15分单项+15分不定项),其余部分分值均发生了变化,其中问题求解由10分上升到15分,阅读程序由32分下降到28分,完善程序由28分下降到27分。

由于是第一年实行这种分值,目前暂时无法定言背后的含义,然而或许CCF在初赛更加重视选手的数学素质,而弱化了对于阅读程序能力的考察。

众所周知,阅读程序的能力并不能非常真实地反映选手的程序能力,并且纵观近几年的阅读程序题已没有了什么新意,这也可看做是一个“求新求变”的信号。

至于试囗题整体难度方面较上年有了明显下降,其中问题求解第一题可以看做是考察选手的语文水平,而阅读程序更是没有了以往的“死算”题(即给定若干常数,在程序中设置一系列运算过程,让选手进行阅读计算类型的题目),完善程序给定的源代码风格良好,第二题竟然还加上了注释,这不能不说就是一种降低难度的举动。

全国青少年信息学奥林匹克竞赛(NOI)2010 试题

全国青少年信息学奥林匹克竞赛(NOI)2010 试题
由于能量汇集机器较大,不便移动,栋栋将它放在了一个角上,坐标正好是(0, 0)。 能量汇集机器在汇集的过程中有一定的能量损失。如果一棵植物与能量汇集机器连接而成的 线段上有 k 棵植物,则能 量的损失为 2k + 1。例如,当能量汇集机器收集坐标为(2, 4)的植 物时,由于连接线段上存在一棵植物(1, 2),会产生 3 的能量损失。注意,如果一棵植物与 能量汇集机器连接的线段上没有植物,则能量损失为 1。现在要计算总的能量损失。
【输出格式】
输出文件 plane.out 由两行组成。 第一行包含 n 个整数,表示一个可行的起飞序列,相邻两个整数用空格分隔。 输入数据保证至少存在一个可行的起飞序列。如果存在多个可行的方案,输出任 意一个即可。 第二行包含 n 个整数 t1, t2, „, tn,其中 ti 表示航班 i 可能的最小起飞序 号,相邻两个整数用空格分隔。
【运行时限】
1 秒。
【运行空限】
512M。
Copyright © 2010 中国计算机学会, 版权所有.
全国青少年奥林匹克竞赛(NOI)2010 试题
超级钢琴
【问题描述】
小 Z 是一个小有名气的钢琴家,最近 C 博士送给了小 Z 一架超级钢琴,小 Z 希望能够用这架钢琴创作出世界上最美妙的音乐。
这架超级钢琴可以弹奏出 n 个音符,编号为 1 至 n。第 i 个音符的美妙度为 Ai,其中 Ai 可正可负。
小 Z 搜集到了世博园的地图,她发现从整体上看世博园是一块非常狭长的区 域,而每一个展馆占用了其中一个几乎相同大小的方块。因此可以将整个园区看 成一个 n × m 的矩阵(n≤3),其中每一个格子为一个主题展馆。
输出文件为 piano.out。 输出文件只有一个整数,表示乐曲美妙度的最大值。

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

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

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;}输入:4 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找最长的路径的程序。

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

第十六届全国青少年信息学奥林匹克联赛初赛试题试题及答案NOIP2010(Pascal提高组)一、单项选择题1.与16进制数 A1.2等值的10进制数是(A )A.101.2B.111.4C.161.125D.177.252.一个字节(byte)由(A )个二进制组成。

A.8B.16C.32D.以上都有可能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下可执行文件的默认扩展名是(B )。

A.exeC.dllD.以上都不是5.如果在某个进制下等式7*7=41成立,那么在该进制下等式12*12=(C )也成立。

A.100B.144C.164D.1966.提出“存储程序”的计算机工作原理的是(B )。

A. 克劳德•香农B. 戈登•摩尔C. 查尔斯•巴比奇D. 冯•诺依曼7.前缀表达式“+ 3 * 2 + 512 ” 的值是(C )。

A.23B.25C.37D.658.主存储器的存取速度比中央处理器(CPU)的工作速度慢的多,从而使得后者的效率受到影响。

而根据局部性原理,CPU所访问的存储单元通常都趋于一个较小的连续区域中。

于是,为了提高系统整体的执行效率,在CPU中引入了(B )。

A.寄存器B.高速缓存C.闪存D.外存9.完全二叉树的顺序存储方案,是指将完全二叉树的结点从上到下、从左到右依次存放到一个顺序结构的数组中。

假定根结点存放在数组的1号位置上,则第k号结点的父结点如果存在的话,应当存放在数组中的(C )号位置。

A.2kB.2k+1C.k/2下取整D.(k+1)/210. 以下竞赛活动中历史最悠久的是(D )。

A. NOIPB. NOIC. IOID. APIO二、不定项选择题1.元素R1、R2、R3、R4、R5入栈的顺序为R1、R2、R3、R4、R5。

如果第1个出栈的是R3,那么第5个出栈的可能是(AB )。

A. R1B. R2C.R4D.R52. Pascal语言,C语言和C++语言都属于(AD )。

A. 高级语言B. 自然语言C. 解释性语言D. 编译性语言3. 原地排序是指在排序过程中(除了存储待排序元素以外的)辅助空间的大小与数据规模无关的排序算法。

以下属于原地排序的有(AC )。

A. 冒泡排序B. 插入排序C. 基数排序D. 选择排序4. 在整数的补码表示法中,以下说法正确的是()。

A.只有负整数的编码最高位为1B.在编码的位数确定后,所能表示的最小整数和最大整数的绝对值相同C.整数0只有一个唯一的编码D.两个用补码表示的数相加时,如果在最高位产生进位,则表示运算溢出5. 一颗二叉树的前序遍历序列是ABCDEFG,后序遍历序列是CBFEGDA,则根结点的左子树的结点个数可能是(B )。

A.0 B. 2 C. 4 D. 66. 在下列HTML语句中,可以正确产生一个指向NOI官方网站的超链接的是(A )。

A.<a url=”h t t p : / / w w w . n o i . c n”>欢迎访问NOI网站</a>B.<a href=”h t t p : / /w w w . n o i . c n”>欢迎访问NOI网站</a>C.<a>h t t p : / / w w w . n o i . c n</a>D.<a name”h t t p : / / w w w . n o i . c n”>欢迎访问NOI网站</a>7. 关于拓扑排序,下列说法正确的是(A )。

A.所有连通的有向图都可以实现拓扑排序B.对同一个图而言,拓扑排序的结构是唯一的C.拓扑排序中入度为0的结点总会排在入度大于0的结点的前面D.拓扑排序结果序列中的第一个结点一定是入度大于0的点8. 一个平面的法线是指与该平面垂直的直线。

过点(1,1,1)、(0,3,0)、(2,0,0)的平面的法线是()。

A.过点(1,1,1)、(2,3,3)的直线B.过点(1,1,1)、(3,2,1)的直线C.过点(0,3,0)、(-3,1,1)的直线D.过点(2,0,0)、(5,2,1)的直线9.双向链表中有两个指针域llink和rlink,分别指向该结点的前驱及后继。

设p指向链表中的一个结点,他的左右结点均为非空。

现要求删除结点p,则下列语句序列中正确的是( )。

A.p->rlink->llink=p->rlink;p->llink->rlink=p->llink; delete p;B.p->llink->rlink=p->rlink;p->rlink->llink = p->llink; delete p;C.p->rlink->llink = p->llink;p->rlink->llink ->rlink = p->rlink; delete p;D.p->llink->rlink = p->rlink;p->llink->rlink->link = p->llink; delete p;10. 今年(2010年)发生的事件有(CD )。

A.惠普实验室研究员Vinay Deolalikar 自称证明了P≠NPB.英特尔公司收购计算机安全软件公司迈克菲(McAfee)C.苹果公司发布iPhone 4手机D.微软公司发布Windows 7 操作系统三、问题求解1.LZW编码是一种自适应词典编码。

在编码的过程中,开始时只有一部基础构造元素的编码词典,如果在编码的过程中遇到一个新的词条,则该词条及一个新的编码会被追加到词典中,并用于后继信息的编码。

举例说明,考虑一个待编码的信息串:“xyx yy yy xyx”。

初始词典只有3个条目,第一个为x,编码为1;第二个为y,编码为2;第三个为空格,编码为3;于是串“xyx”的编码为1-2-1(其中-为编码分隔符),加上后面的一个空格就是1-2-1-3。

但由于有了一个空格,我们就知道前面的“xyx”是一个单词,而由于该单词没有在词典中,我们就可以自适应的把这个词条添加到词典里,编码为4,然后按照新的词典对后继信息进行编码,以此类推。

于是,最后得到编码:1-2-1-3-2-2-3-5-3-4。

我们可以看到,信息被压缩了。

压缩好的信息传递到接受方,接收方也只要根据基础词典就可以完成对该序列的完全恢复。

解码过程是编码过程的逆操作。

现在已知初始词典的3个条目如上述,接收端收到的编码信息为2-2-1-2-3-1-1-3-4-3-1-2-1-3-5-3-6,则解码后的信息串是”____________”。

2.无向图G有7个顶点,若不存在由奇数条边构成的简单回路,则它至多有__________条边。

3.记T为一队列,初始时为空,现有n个总和不超过32的正整数依次入列。

如果无论这些数具体为何值,都能找到一种出队的方式,使得存在某个时刻队列T中的数之和恰好为9,那么n的最小值是___________。

四、阅读程序写结果1.constsize = 10;vari, j, cnt, n, m : integer;data : array[1..size] of integer;beginreadln(n, m);for i := 1 to n doread(data[i]);for i := 1 to n dobegincnt := 0;for j := 1 to n doif (data[i] < data[j]) or ((data[j] = data[i]) and (j < i))then inc(cnt);if cnt = mthen writeln(data[i]);end;end.输入5 296 -8 0 16 87输出:__________2.constsize = 100;varna, nb, i, j, k : integer;a, b : array[1..size] of integer;beginreadln(na);for i := 1 to na doread(a[i]);readln(nb);for i := 1 to nb doread(b[i]);i := 1;j := 1;while (i <= na) and (j <= nb) do beginif a[i] <= b[j] thenbeginwrite(a[i],' ');inc(i);endelse beginwrite(b[j], ' ');inc(j);end;end;if i <= na thenfor k := i to na dowrite(a[k], ' ');if j <= nb thenfor k := j to nb dowrite(b[k], ' ');end.输入51 3 5 7 942 6 10 14输出:__________3.constnum = 5;varn: integer;function r(n : integer) : integer; vari : integer;beginif n <= num thenbeginr := n;exit;end;for i :=1 to num doif r(n-i) < 0 thenbeginr:=i;exit;end;r:=-1;end;beginreadln(n);writeln(r(n));end.输入 16输出:__________4.constsize=100;varn,m,x,y,i :integer;r: array[1.. size] of integer;map : array[1..size, 1..size] of boolean; found : boolean;function successful : boolean;vari : integer;beginfor i :=1 to n doif not map[r[i]][r[i mod n + 1]]then beginsuccessful := false;exit;end;successful :=true;end;procedure swap(var a, b : integer);vart : integer;begint := a;a := b;b := t;end;procedure perm(left, right : integer);vari : integer;beginif foundthen exit;if left > rightthen beginif successfulthen beginfor i := 1 to n dowriteln(r[i], ' ');found := true;end;exit;end;for i:= left to right dobeginswap(r[left], r[i]);perm(left + 1, right);swap(r[left], r[i]);end;end;beginreadln(n, m);fillchar(map, sizeof(map), false); for i := 1 to m dobeginreadln(x, y);map[x][y] := true;map[y][x] := true;end;for i := 1 to n dor[i] := i;found := false;perm(1, n);if not foundthen writeln('No soloution'); end.输入:9 121 22 33 44 55 66 11 72 73 84 85 96 9输出:__________五、完善程序1.(过河问题) 在一个月黑风高的夜晚,有一群人在河的右岸,想通过唯一的一根独木桥走到河的左岸.在伸手不见五指的黑夜里,过桥时必须借照灯光来照明,不幸的是,他们只有一盏灯.另外,独木桥上最多能承受两个人同时经过,否则将会坍塌.每个人单独过独木桥都需要一定的时间,不同的人要的时间可能不同.两个人一起过独木桥时,由于只有一盏灯,所以需要的时间是较慢的那个人单独过桥所花费的时间.现在输入N(2<=N<1000)和这N个人单独过桥需要的时间,请计算总共最少需要多少时间,他们才能全部到达河左岸.例如,有3个人甲、乙、丙,他们单独过桥的时间分别为1 2 4,则总共最少需要的时间为7.具体方法是:甲乙一起过桥到河的左岸,甲单独回到河的右岸将灯带回,然后甲,丙在一起过桥到河的左岸,总时间为2+1+4=7.constSIZE = 100;INFINITY = 10000;LEFT = true;RIGHT = false;LEFT_TO_RIGHT = true;RIGHT_TO_LEFT = false;varn, i : integer;time : array[1..Size] of integer;pos :array[1..Size] of Boolean;function max(a, b :integer) : integer;beginif a > b thenmax := aelsemax := b;end;function go(stage : boolean) : integer;vari, j, num, tmp, ans : integer;beginif (stage = RIGHT_TO_LEFT)then beginnum := 0;ans :=0;for i := 1 to n doif pos[i] = Rignt thenbegininc(num);if time[i] > ans thenans := time[i];end;if __________ thenbegingo := ans;exit;end;ans := INFINITY;for i := 1 to n – 1 doif pos[i] = RIGHT thenfor j := i+1 to n doif pos[j] = RIGHT thenbeginpos[i] := LEFT;pos[j] := LEFT;tmp := max(time[i], time[j]) + _______; if tmp < ans thenans := tmp;pos[i] := RIGHT;pos[j] := RIGHT;end;go := ans;endelse if (stage = LEFT_TO_RIGHT)then beginans := INFINITY;for i := 1 to n doif _______ thenbeginpos[i] := RIGHT;tmp := ________;if tmp < ans thenans := tmp;_________;end;go := ans;endelse go := 0;end;beginreadln(n);for i := 1 to n dobeginread(time[i]);pos[i] := RIGHT;end;writeln(go(RIGHT_TO_LEFT));end.NOIP2010提高组(Pascal语言)参考答案与评分标准。

相关文档
最新文档