NOIP2013初赛提高组Pascal试题

合集下载

NOIP2013提高组复赛试题day1+day2

NOIP2013提高组复赛试题day1+day2

CCF 全国信息学奥林匹克联赛(NOIP2013)复赛提高组 day11.转圈游戏(circle.cpp/c/pas)【问题描述】n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏。

按照顺时针方向给 n 个位置编号,从 0 到 n-1。

最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置,……,依此类推。

游戏规则如下:每一轮第 0 号位置上的小伙伴顺时针走到第 m 号位置,第 1 号位置小伙伴走到第 m+1 号位置,……,依此类推,第n −m号位置上的小伙伴走到第 0 号位置,第n-m+1 号位置上的小伙伴走到第 1 号位置,……,第 n-1 号位置上的小伙伴顺时针走到第m-1 号位置。

现在,一共进行了10k 轮,请问x 号小伙伴最后走到了第几号位置。

【输入】输入文件名为circle.in。

输入共 1 行,包含 4 个整数n、m、k、x,每两个整数之间用一个空格隔开。

【输出】输出文件名为c ircle.out。

输出共1行,包含1个整数,表示10k 轮后x号小伙伴所在的位置编号。

【输入输出样例】circle.in circle.out10 3 4 5 5【数据说明】对于30%的数据,0 < k < 7;对于80%的数据,0 < k < 107;对于100%的数据,1 < n< 1,000,000,0 <m <n ,0 ≤ x ≤ n,0 < k< 109。

2.火柴排队(match.cpp/c/pas)【问题描述】涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度。

现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为:,其中 ai表示第一列火柴中第 i 个火柴的高度,bi 表示第二列火柴中第 i 个火柴的高度。

每列火柴中相邻两根火柴的位置都可以交换,请你通过交换使得两列火柴之间的距离最小。

学军中学NOIP2013提高组原创模拟题day2

学军中学NOIP2013提高组原创模拟题day2

学军中学NOIP2013提高组原创模拟题day2测试时间:3.5小时注意事项:1.评测时采用的机器配置为:CPU T83002.40GHz,内存4G。

2.某些题目数据量大,请C++选手谨慎使用cin读入数据。

1.完全平方数(number.cpp/c/pas)【问题描述】一个数如果是另一个整数的完全平方,那么我们就称这个数为完全平方数(Pefect Sqaure),也称平方数。

小A认为所有的平方数都是很perfect的~于是他给了小B一个任务:用任意个不大于n的不同的正整数相乘得到完全平方数,并且小A 希望这个平方数越大越好。

请你帮助小B告诉小A满足题意的最大的完全平方数。

【输入】输入文件名为number.in输入仅1行,一个数n。

【输出】输出文件名为number.out输出仅1行,一个数表示答案。

由于答案可以很大,所以请输出答案对100000007取模后的结果。

【输入输出样例1】number.in7number.out144【输入输出样例解释1】144=2×3×4×6,是12的完全平方。

【输入输出样例2】number.in9number.out5184【输入输出样例解释2】5184=3×4×6×8×9,是72的完全平方。

【数据范围】对于20%的数据,0<n≤100;对于50%的数据,0<n≤5,000;对于70%的数据,0<n≤100,000;对于100%的数据,0<n≤5,000,000。

2.卡片游戏(game.cpp/c/pas)【问题描述】小D举办了元旦联欢活动,其中有一个卡片游戏。

游戏的规则是这样的:有n张卡片,每张卡片上正面写着一个小于等于100的正整数a i,反面都是一样的花色。

这n张卡片正面朝下叠成一堆,玩这个游戏的人从中可以抽出连续的k(1≤k≤n)张卡片。

如果对于这k张卡片上的数字的平均值a,满足l<=a<=r,那他就可以获得小礼物一件。

NOIP提高组初赛历年试题及答案完善题篇

NOIP提高组初赛历年试题及答案完善题篇

for (i = m; i>= 1; i--){
used[data[i]] = false;
for (j =data[i]+1; j <= n; j++) if (!used[j]){
used[j] =true;
data[i] = j;
flag = true;
break;
}
if (flag)
{
for (k = i+1;k <= m; k++)
solve(left, j –1, deep + 1);
if(j<right)
solve(j+ 1, right, deep + 1);
}
int main()
{
inti;
cin>>n;
for(i=1;i<=n;i++)
cin>>a[i];
maxDeep=0;
solve(1,n,1);
cout<<maxDeep<<' '<<num<<endl;
}
void push()
for (j = 1; j<=n; j++) if (!used[j]){
data[k] = j;
used[j] =true;
break;
}
break;
}
}
}
}
NOIP2012-2.新壳栈 小 Z 设计了一种新的数据结构“新壳栈”。首先,它和传统的栈一样支持压入、弹 出操作。此外,其栈顶的前 c 个元素是它的壳,支持翻转操作。其中,c> 2 是 一个固定的正整数,表示壳的厚度。小 Z 还希望,每次操作,无论是压入、弹 出还是翻转,都仅用与 c 无关的常数时间完成。聪明的你能帮助她编程实现“新 壳栈”吗? 程序期望的实现效果如以下两表所示。其中,输入的第一行是正整数 c,之后每 行输入都是一条指令。另外,如遇弹出操作时栈为空,或翻转操作时栈中元素不 足 c 个,应当输出相应的错误信息。

2013年第十九届全国青少年信息学奥林匹克联赛提高组初赛试题

2013年第十九届全国青少年信息学奥林匹克联赛提高组初赛试题

2013年第十九届全国青少年信息学奥林匹克联赛提高组初赛试题第十九届全国青少年信息学奥林匹克联赛初赛提高组Pascal语言试题竞赛时间:2013年10月13日14:30~16:30选手注意:●试题纸共12页,答题纸共2页,满分100分。

请在答题纸上作答,写在试题纸上的一律无效。

●不得使用任何电子试备(如计算器、手机、电子词典等)或查阅任何书籍资料。

一、单项选择题(共15题,每题1.5分,共计22.5分;每题有且仅有一个正确选项)1.一个32位整型变量占用()个字节。

A.4 B.8 C.32 D.1282.二进制数11.01在十进制下是()。

A.3.25 B.4.125 C.6.25D.11.1253.下面的故事与()算法有着异曲同工之妙。

从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:“从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事…………………………’”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.1007C.1023 D.10246.在一个有向图中,如果任意两点之间都存在路径相连,则称其为连通图。

右图是一个有5个顶点、8条边的连通图。

若要使它不再是连通图,至少要删去其中的()条边。

A.2 B.3 C.4 D.57.斐波那契数列的定义如下:F1=1,F2=1,F n=F n-1+F n-2(n≥3)。

如果用下面的函数计算斐波那契数列的第n项,则其时间复杂度为()。

function F(n:longint):longint;beginif n<=2 thenF:=1elseF:=F(n-1)+F(n-2);end;A.O(1) B.O(n) C.O(n2)D.O(F n)8.二叉查找树具有如下性质:每个节点的值都大于其左子树上所有节点的值、小于其右子树上所有节点的值。

2009-2013年NOIP初赛提高组C++语言试题及参考答案

2009-2013年NOIP初赛提高组C++语言试题及参考答案

2009-2013年NOIP初赛提高组C++语言试题2013第十九届全国青少年信息学奥林匹克联赛初赛提高组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.1282.二进制数11.01在十进制下是()。

A.3.25 B.4.125 C.6.25 D.11.1253.下面的故事与()算法有着异曲同工之妙。

从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:?从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事....’?A.枚举B.递归C.贪心D.分治4.1948年,()将热力学中的熵引入信息通信领域,标志着信息论研究的开端。

A.冯·诺伊曼(John von Neumann)B.图灵(Alan Turing)C.欧拉(Leonhard Euler)D.克劳德·香农(Claude Shannon)5.已知一棵二叉树有2013个节点,则其中至多有()个节点有2个子节点。

A.1006B.1007C.1023D.10246.在一个无向图中,如果任意两点之间都存在路径相连,则称其为连通图。

右图是一个有5个顶点、8条边的连通图。

若要使它不再是连通图,至少要删去其中的()条边。

A.2B.3C.4D.57.斐波那契数列的定义如下:F1=1,F2=1,Fn=Fn–1+Fn–2(n≥3)。

如果用下面的函数计算斐波那契数列的第n项,则其时间复杂度为()。

int F(int n){if(n<=2)return 1;elsereturn F(n-1)+F(n-2);})A.O(1)B.O(n)C.O(n2)D.O(Fn8.二叉查找树具有如下性质:每个节点的值都大于其左子树上所有节点的值、小于其右子树上所有节点的值。

完善程序专项练习

完善程序专项练习

完善程序专项练习1. NOIP2013提高组(序列重排)全局数组变量 a 定义如下:const int SIZE = 100;var a:array [1..size] of integer; n:integer;它记录着一个长度为 n 的序列 a[1], a[2], …, a[n]。

现在需要一个函数,以整数 p (1 ≤ p ≤ n)为参数,实现如下功能:将序列a 的前 p 个数与后 n – p 个数对调,且不改变这 p 个数(或 n – p 个数) 之间的相对位置。

例如, 长度为 5 的序列 1, 2, 3, 4, 5,当 p = 2 时重排 结果为 3, 4, 5, 1, 2。

有一种朴素的算法可以实现这一需求,其时间复杂度为 O(n)、空间复杂度为 O (n):procedure swap1(p : longint);vari, j : longint;b : array[1..SIZE] of longint;beginfor i := 1 to p dob[ (1)] := a[i];for i := p + 1 to n do b[i - p] := a[i];for i := 1 to n doa[i] := b[i];end;我们也可以用时间换空间,使用时间复杂度为 O(n2)、空间复杂度为 O(1)的算 法:procedure swap2(p : longint);vari, j, temp : longint;beginfor i := p + 1 to n do begintemp := a[i];for j := i downto (2)do //(2 分)a[j] := a[j - 1];(3) := temp; //(2 分)end;end;事实上,还有一种更好的算法,时间复杂度为 O(n)、空间复杂度为 O(1):procedure swap3(p : longint);varstart1, end1, start2, end2, i, j, temp : longint;beginstart1 := 1;end1 := p;start2 := p + 1;end2 := n;while true dobegini := start1;j := start2;while (i <= end1) and (j <= end2) do begintemp := a[i];a[i] := a[j];a[j] := temp; inc(i); inc(j);end;if i <= end1 then start1 := ielseif (4)thenbeginstart1 := (5) ;end1 := (6) ;start2 := j;endelsebreak;end;end;(二叉查找树)二叉查找树具有如下性质:每个节点的值都大于其左子树上所有 节点的值、小于其右子树上所有节点的值。

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

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

NOIP2013第十九届全国青少年信息学奥林匹克联赛初赛(提高组)试题解析一、单选题(15*1.5)1、A,一个字节有8个bit,32位整型变量占用4个字节,故选A。

2、A,二进制11.01转为十进制,(11.01)2 = 1*2+1+0*0.5+1*0.25 = (3.25)10 。

3、B,老和尚给小和尚讲的故事里边有故事本身,递归是函数内部调用函数本身,故选B,递归。

4、D,香农信息论鼻祖。

5、A,一定是满二叉树时拥有2个字节点的节点数最多,最下一层会有2013-1023=990个节点,于是倒数第二层会有990/2=495个节点有2个字节点,从第1层到倒数第三层共有1023-2^9=511个节点,且这些节点都是用2个子节点的节点,所以共有495+511=1006个,选A。

6、B,要使图不联通,只要其中某一个节点不连通即可,所有顶点度最少是3,所以最少需要删除3条边,选B。

7、D,此题最开始一眼扫到的时候脑子进水,跟学生将选B,O(n),实际上不是,计算F1需要1次,计算F2需要一次,计算Fn需要计算F(n-1)的次数加上F (n-2)的次数,所以其实就是计算Fn次,于是答案选择D,至于这个Fn到底是多大,数学上可以计算,它等于O(((1+sqrt(5))/2)^n).8、B,这个必须是B,没有什么好说的,中序遍历保证左边都是小于根的,右边都是大于根的,所以可以保证是一个有序序列。

9、D,A项6和17对11取余都是6发生冲突,B项10的平方和17的平方对11取余都是1发生冲突,C项6的两倍和17的两倍对11取余都是1发生冲突,D项分别为1,2,3,4,不冲突。

10、D,IPV6地址是128位的。

谢谢网友指正!11、C,二分为6个和6个的顶点,此时边最多,有36条边。

12、B,我的学生几乎全选A去了,因为之前讲题只介绍过ASCII码,但是看到统一二字也应该想到Uni...前缀啊。

13、D,64位非零浮点数强制转换成32位浮点数,两个数会有大小上的细微差别,但不会发生符号变化,因为有专门的符号位。

NOIP2013提高组初赛Pascal试题

NOIP2013提高组初赛Pascal试题

第十九届全国青少年信息学奥林匹克联赛初赛提高组 Pascal 语言试题竞赛时间:2013 年 10 月 13 日 14:30~16:30选手注意:试题纸共有 12 页,答题纸共有 2 页,满分 100 分。

请在答题纸上作答,写在试题纸上的一律无效。

不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。

一、单项选择题(共 15 题,每题 1.5 分,共计 22.5 分;每题有且仅有一个正确选项)1. 一个 32 位整型变量占用()个字节。

A. 4B. 8C. 32D. 1282. 二进制数 11.01 在十进制下是()。

A. 3.25B.4.125 C. 6.25 D. 11.1253. 下面的故事与()算法有着异曲同工之妙。

从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‚从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事....’‛A. 枚举B. 递归C. 贪心D. 分治4. 1948 年,()将热力学中的熵引入信息通信领域,标志着信息论研究的开端。

A. ·诺伊曼(John von Neumann)B. 图灵(Alan Turing)C. 欧拉(Leonhard Euler)D. 克劳德·香农(Claude Shannon)5. 已知一棵二叉树有 2013 个节点,则其中至多有()个节点有 2 个子节点。

A. 1006B. 1007C. 1023D. 10246. 在一个无向图中,如果任意两点之间都存在路径相连,则称其为连通图。

右图是一个有 5 个顶点、8 条边的连通图。

若要使它不再是连通图,至少要删去其中的()条边。

A.2B.3C.4D.57.斐波那契数列的定义如下:F1 = 1, F2 = 1, F n = F n– 1 + F n– 2 (n≥ 3)。

如果用下面的函数计算斐波那契数列的第n项,则其时间复杂度为()。

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

2009-2013年NOIP初赛提高组C++语言试题及参考答案

2009-2013年NOIP初赛提高组C++语言试题及参考答案

2009-2013年NOIP初赛提高组C++语言试题2013第十九届全国青少年信息学奥林匹克联赛初赛提高组C++语言试题竞赛时间:2013年10月13日14:30~16:30选手注意:试题纸共有12页,答题纸共有2页,满分100分。

请在答题纸上作答,写在试题纸上的一律无效。

不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。

一、单项选择题(共15题,每题1.5分,共计22.5分;每题有且仅有一个正确选项)1.一个32位整型变量占用(B)个字节。

A.4 B.8 C.32 D.1282.二进制数11.01在十进制下是()。

A.3.25 B.4.125 C.6.25 D.11.1253.下面的故事与(B)算法有着异曲同工之妙。

从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:?从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事....’?A.枚举B.递归C.贪心D.分治4.1948年,(C)将热力学中的熵引入信息通信领域,标志着信息论研究的开端。

A.冯·诺伊曼(John von Neumann)B.图灵(Alan Turing)C.欧拉(Leonhard Euler)D.克劳德·香农(Claude Shannon)5.已知一棵二叉树有2013个节点,则其中至多有(A)个节点有2个子节点。

A.1006B.1007C.1023D.10246.在一个无向图中,如果任意两点之间都存在路径相连,则称其为连通图。

右图是一个有5个顶点、8条边的连通图。

若要使它不再是连通图,至少要删去其中的(B)条边。

A.2B.3C.4D.57.斐波那契数列的定义如下:F1=1,F2=1,Fn=Fn–1+Fn–2(n≥3)。

如果用下面的函数计算斐波那契数列的第n项,则其时间复杂度为(D)。

int F(int n){if(n<=2)return 1;elsereturn F(n-1)+F(n-2);})A.O(1)B.O(n)C.O(n2)D.O(Fn8.二叉查找树具有如下性质:每个节点的值都大于其左子树上所有节点的值、小于其右子树上所有节点的值。

NOIP2013提高组复赛试题

NOIP2013提高组复赛试题

CCF 全国信息学奥林匹克联赛(NOIP2013)复赛提高组 day11.转圈游戏(circle.cpp/c/pas)【问题描述】n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏。

按照顺时针方向给 n 个位置编号,从 0 到 n-1。

最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置,……,依此类推。

游戏规则如下:每一轮第 0 号位置上的小伙伴顺时针走到第 m 号位置,第 1 号位置小伙伴走到第 m+1 号位置,……,依此类推,第n −m号位置上的小伙伴走到第 0 号位置,第n-m+1 号位置上的小伙伴走到第 1 号位置,……,第 n-1 号位置上的小伙伴顺时针走到第m-1 号位置。

现在,一共进行了10^k 轮,请问x 号小伙伴最后走到了第几号位置。

【输入】输入文件名为circle.in。

输入共1 行,包含4 个整数n、m、k、x,每两个整数之间用一个空格隔开。

【输出】输出文件名为c ircle.out。

输出共1行,包含1个整数,表示10k 轮后x号小伙伴所在的位置编号。

【数据说明】对于30%的数据,0 < k < 7;对于80%的数据,0 < k < 107;对于100%的数据,1 < n< 1,000,000,0 <m <n ,0 ≤ x ≤ n,0 < k< 109。

2.火柴排队(match.cpp/c/pas)【问题描述】涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度。

现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为:,其中 ai 表示第一列火柴中第 i 个火柴的高度,bi 表示第二列火柴中第 i 个火柴的高度。

每列火柴中相邻两根火柴的位置都可以交换,请你通过交换使得两列火柴之间的距离最小。

请问得到这个最小的距离,最少需要交换多少次?如果这个数字太大,请输出这个最小交换次数对 99,999,997 取模的结果。

NOIP初赛模拟试题(Pascal语言、提高组)

NOIP初赛模拟试题(Pascal语言、提高组)

NOIP初赛模拟试题(Pascal语⾔、提⾼组)NOIP初赛模拟试题 by OI Store(提⾼组 Pascal语⾔⼆⼩时完成)⼀、单项选择题(共10题,每题1.5分,共计15分。

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

)1.建⽴了计算机最主要的结构原理的⼈是()。

A. 图灵B. ⽐尔·盖茨C. 冯·诺伊曼D. 克拉拉·丹E. 哥德尔2.设a、b、c是三个布尔型(boolean)的变量,则表达式(a∨?b)∧(b∨?c)∧(c∨?a)∧(a∧?a)∧(b∧?b)的值()。

A. 始终为trueB. 始终为falseC. 当且仅当c为true时为falseD. 当且仅当a与b均为true时为trueE.依赖于a、b、c三者的值3.设a、b为两个浮点(float)型变量,下⾯的表达式中最有可能为真的是()。

A. a=bB. a*a+2*a*b+b*b=(a+b)*(a+b)C. (a+b)*(a-b)+b*b-a*a<0.0001D. a/b=1/(b/a)E. sqrt(a)*sqrt(b)=sqrt(a*b)4.下⾯的数据中,在编程中⽤长整型(longint)表⽰最恰当的是()。

A. 宇宙中的原⼦数⽬B. ⼀头⼤象的体重(⽤吨表⽰)C. 姚明的⾝⾼(⽤厘⽶表⽰)D. ⼀个⼭村的准确⼈⼝数E.从现在(2006年)到2008奥运会开幕的倒计时秒数5.⼀个三叉树(即每个节点最多有三个孩⼦)中,有k个孩⼦的结点数⽬表⽰为S(k),则下列关系⼀定成⽴的是()。

A. S(0)=2*S(3)+S(2)-1B. S(0)>3*S(3)+2*S(2)-1C. S(0)<3*S(3)+2*S(2)+1D. S(0)<2*S(3)+S(2)E. S(0)<=3*S(3)+2*S(2)6.佳佳在⽹上购买了⼀个空间,建设了⼀个⽹站。

那么,他向⽹站上上传⽹页时最有可能采⽤的⽹络协议是()。

2013普及组初赛试题

2013普及组初赛试题

2013年第十九届全国青少年信息学奥林匹克联赛初赛普及组Pascal语言试题一、单项选择题(共20题,每题 1.5分,共计30分;每题有且仅有一个正确选项)1.一个32位整型变量占用()个字节。

A.4B.8 C.32 D.1282.二进制数11.01在十进制下是()。

A.3.25 B.4.125 C. 6.25 D.11.1253.下面的故事与()算法有着异曲同工之妙。

从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:“从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事........................’”A.枚举B.递归C.贪心D.分治4.逻辑表达式()的值与变量A的真假无关。

A.(A∨B)∧¬AB.(A∨B)∧¬BC.(A∧B)∨(¬A∧B)D.(A∨B)∧¬A∧B5.将(2,6,10,17)分别存储到某个地址区间为0~10的哈希表中,如果哈希函数h(x)=(),将不会产生冲突,其中a mod b表示a除以b的余数。

A.x mod11B.x2mod11C.2x mod11D.[X]mod11,其中[X]表示X下取整6.在十六进制表示法中,字母A相当于十进制中的()。

A.9B.10C.15D.167.下图中所使用的数据结构是()。

8.在Windows资源管理器中,用鼠标右键单击一个文件时,会出现一个名为“复制”的操作选项,它的意思是()。

A.用剪切板中的文件替换该文件B.在该文件所在文件夹中,将该文件克隆一份C.将该文件复制到剪切板,并保留原文件D.将该文件复制到剪切板,并删除原文件9.已知一棵二叉树有10个节点,则其中至多有()个节点有2个子节点。

A.4B.5C.6D.710.在一个无向图中,如果任意两点之间都存在路径相连,则称其为连通图。

下图是一个有4个顶点、6条边的连通图。

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

第十九届全国青少年信息学奥林匹克联赛初赛提高组Pascal语言试题竞赛时间:2013 年10 月13 日14:30~16:30选手注意:●试题纸共有12 页,答题纸共有2 页,满分100 分。

请在答题纸上作答,写在试题纸上的一律无效。

●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。

一、单项选择题(共15 题,每题1.5 分,共计22.5 分;每题有且仅有一个正确选项)1. 一个32 位整型变量占用()个字节。

A. 4B. 8C. 32D. 1282. 二进制数11.01 在十进制下是()。

A. 3.25B. 4.125C. 6.25D. 11.1253. 下面的故事与()算法有着异曲同工之妙。

从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:“从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事……’”A. 枚举B. 递归C. 贪心D. 分治4. 1948 年,()将热力学中的熵引入信息通信领域,标志着信息论研究的开端。

A. 冯·诺伊曼(John von Neumann)B. 图灵(Alan Turing)C. 欧拉(Leonhard Euler)D. 克劳德·香农(Claude Shannon)5. 已知一棵二叉树有2013 个节点,则其中至多有()个节点有2 个子节点。

A. 1006B. 1007C. 1023D. 10246. 在一个无向图中,如果任意两点之间都存在路径相连,则称其为连通图,至少要删去其中的()条边。

A. 2B. 3C. 4D. 57. 斐波那契数列的定义如下:F1 = 1, F2 = 1, F n = F n – 1 + F n – 2 (n ≥ 3)。

如果用下面的函数计算斐波那契数列的第n 项,则其时间复杂度为()。

funtion F(n : longint) : longint;beginif n <= 2 thenF := 1elseF := F(n - 1) + F(n - 2);end;A. O(1)B. O(n)C. O(n2)D. O(F n)8. 二叉查找树具有如下性质:每个节点的值都大于其左子树上所有节点的值、小于其右子树上所有节点的值。

那么,二叉查找树的()是一个有序序列。

A. 先序遍历B. 中序遍历C. 后序遍历D. 宽度优先遍历9. 将(2, 6, 10, 17)分别存储到某个地址区间为0~10 的哈希表中,如果哈希函数h(x) =(),将不会产生冲突,其中a mod b 表示a 除以b 的余数。

A. x mod 11B. x2 mod 11C. 2x mod 11D. ⌊√ ⌋mod 11,其中⌊√ ⌋表示√ 下取整10. IPv4 协议使用32 位地址,随着其不断被分配,地址资源日趋枯竭。

因此,它正逐渐被使用()位地址的IPv6 协议所取代。

A. 40B. 48C. 64D. 12811. 二分图是指能将顶点划分成两个部分,每一部分内的顶点间没有边相连的简单无向图。

那么,12 个顶点的二分图至多有()条边。

A. 18B. 24C. 36D. 6612. ()是一种通用的字符编码,它为世界上绝大部分语言设定了统一并且唯一的二进制编码,以满足跨语言、跨平台的文本交换。

目前它已经收录了超过十万个不同字符。

A. ASCIIB. UnicodeC. GBK 2312D. BIG513. 把64 位非零浮点数强制转换成32 位浮点数后,不可能()。

A. 大于原数B. 小于原数C. 等于原数D. 与原数符号相反14. 对一个n 个顶点、m 条边的带权有向简单图用Dijkstra 算法计算单源最短路时,如果不使用堆或其它优先队列进行优化,则其时间复杂度为()。

A. O(mn + n3)B. O(n2)C. O((m + n) log n)D. O((m + n2) log n)15. T(n)表示某个算法输入规模为n 时的运算次数。

如果T(1)为常数,且有递归式T(n) =2*T(n / 2) + 2n,那么T(n) = ()。

A. Θ(n)B. Θ(n log n)C. Θ(n2)D. Θ(n2 log n)二、不定项选择题(共5 题,每题1.5 分,共计7.5 分;每题有一个或多个正确选项,多选或少选均不得分)2. ()的平均时间复杂度为O(n log n),其中n 是待排序的元素个数。

A. 快速排序B. 插入排序C. 冒泡排序D. 归并排序3. 以A0 作为起点,对下面的无向图进行深度优先遍历时(遍历的顺序与顶点字母的下标无关),最后一个遍历到的顶点可能是()。

A. A1B. A2C. A3D. A44. ()属于NP 类问题。

A. 存在一个P 类问题B. 任何一个P 类问题C. 任何一个不属于P 类的问题D. 任何一个在(输入规模的)指数时间内能够解决的问题5. CCF NOIP 复赛考试结束后,因()提出的申诉将不会被受理。

A. 源程序文件名大小写错误B. 源程序保存在指定文件夹以外的位置C. 输出文件的文件名错误D. 只提交了可执行文件,未提交源程序三、问题求解(共2 题,每题5 分,共计10 分;每题全部答对得5 分,没有部分分)1. 某系统自称使用了一种防窃听的方式验证用户密码。

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

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

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

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

= ,2 = ,3 = ,4 = 。

12. 现有一只青蛙,初始时在n 号荷叶上。

当它某一时刻在k 号荷叶上时,下一时刻将等概率地随机跳到1, 2, …, k 号荷叶之一上,直至跳到1 号荷叶为止。

当n = 2 时,平均一共跳2 次;当n = 3 时,平均一共跳2.5 次。

则当n = 5 时,平均一共跳次。

1 2 3 4 5四、阅读程序写结果(共4 题,每题8 分,共计32 分)1. varn, i : integer; str :string; isPlalindrome :boolean;beginreadln(str);n := Length(str);isPlalindrome := true;for i := 1 to (n div 2) dobeginif (str[i] <> str[n-i+1]) thenisPlalindrome := false;end;if (isPlalindrome) thenwriteln('Yes')elsewriteln('No');end.输入:abceecba输出:2. vara, b, u, v, i, num : integer;beginreadln(a, b, u, v);num := 0;for i := a to b dobeginif (i mod u = 0) or (i mod v = 0) theninc(num);end;writeln(num);end.输入:1 1000 10 15输出:3. const SIZE = 100;varn, ans, i, j : integer;height, num : array[1..SIZE] of integer;beginread(n);for i := 1 to n dobeginread(height[i]);num[i] := 1;for j := 1 to i-1 dobeginif ((height[j] < height[i]) and (num[j] >= num[i])) thennum[i] := num[j]+1;end;end;ans := 0;for i := 1 to n dobeginif (num[i] > ans) thenans := num[i];end;writeln(ans);end.输入:83 2 5 11 12 74 10输出:4. const SIZE = 100;varn, m, p, count, ans, x, y, i, j : integer;a : array[1..SIZE, 1..SIZE] of integer;procedure colour(x, y : integer);begin inc(count);a[x][y] := 1;if (x > 1) and (a[x-1][y] = 0) thencolour(x-1, y);if (y > 1) and (a[x][y-1] = 0) thencolour(x, y-1);if (x < n) and (a[x+1][y] = 0) thencolour(x+1, y);if (y < m) and (a[x][y+1] = 0) thencolour(x, y+1);end;beginfillchar(a, sizeof(a), 0);readln(n, m, p);for i := 1 to p dobeginread(x, y);a[x][y] := 1;end;ans := 0;for i := 1 to n dofor j := 1 to m doif a[i][j] = 0 thenbegincount := 0;colour(i, j);if (ans < count) thenans := count;end;writeln(ans);end.输入:65 9142324324143455464输出:五、完善程序(第1 题15 分,第2 题13 分,共计28 分)1.(序列重排)全局数组变量a 定义如下:const int SIZE = 100;int a[SIZE], n;它记录着一个长度为n 的序列a[1], a[2], …, a[n]。

现在需要一个函数,以整数p (1 ≤p ≤ n)为参数,实现如下功能:将序列a 的前p 个数与后n –p 个数对调,且不改变这p 个数(或n –p 个数)之间的相对位置。

例如,长度为5 的序列1, 2, 3, 4, 5,当p = 2 时重排结果为3, 4, 5, 1, 2。

有一种朴素的算法可以实现这一需求,其时间复杂度为O(n)、空间复杂度为O(n):procedure swap1(p : longint);vari, j : longint;b : array[1..SIZE] of longint;beginfor i := 1 to p do//(2 分)for i := p + 1 to n dob[i - p] := a[i];for i := 1 to n doa[i] := b[i];end;我们也可以用时间换空间,使用时间复杂度为O(n2)、空间复杂度为O(1)的算法:procedure swap2(p : longint);vari, j, temp : longint;beginfor i := p + 1 to n dobegintemp := a[i];do //(2 分)a[j] := a[j - 1];:= temp; //(2 分)end;end;事实上,还有一种更好的算法,时间复杂度为O(n)、空间复杂度为O(1):procedure swap3(p : longint);varstart1, end1, start2, end2, i, j, temp : longint;beginstart1 := 1;end1 := p;start2 := p + 1;end2 := n;while true dobegini := start1;j := start2;while (i <= end1) and (j <= end2) dobegintemp := a[i];a[i] := a[j];a[j] := temp;inc(i);inc(j);end;if i <= end1 thenstart1 := ithen //(3 分)begin//(3 分)//(3 分)start2 := j;endelsebreak;end;end;2. (两元序列)试求一个整数序列中,最长的仅包含两个不同整数的连续子序列。

相关文档
最新文档