注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

潘凌云的博客

简单的我 快乐的教学 快乐的生活

 
 
 

日志

 
 

第十一届全国青少年信息学奥林匹克联赛初赛试题  

2010-10-02 11:01:00|  分类: 奥赛资料 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

第十一届全国青少年信息学奥林匹克联赛初赛试题

( 提高组  pascal 语言  二小时完成 )

 

 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效  ●●

 

一、 单项选择题 (10题,每题1.5分,共计15分。每题有且仅有一个正确答案.)。

 

1.       字符串“ababacbab”和字符串“abcba”的最长公共子串是( )。

A. abcba   B. cba   C. abc   D. ab   E. bcba

 

2.         设全集I = {a, b, c, d, e, f, g, h},集合第十一届全国青少年信息学奥林匹克联赛初赛试题 - plyisme - 潘凌云的博客= {a, b, c, d, e, f}第十一届全国青少年信息学奥林匹克联赛初赛试题 - plyisme - 潘凌云的博客= {c, d, e}第十一届全国青少年信息学奥林匹克联赛初赛试题 - plyisme - 潘凌云的博客= {a, d},那么集合第十一届全国青少年信息学奥林匹克联赛初赛试题 - plyisme - 潘凌云的博客为( )。

A. {c, e}   B. {d, e}   C. {e}   D. {c, d, e}   E. {d, f}

 

3.       以下二进制数的值与十进制数23.456的值最接近的是( )。

A. 10111.0101   B. 11011.1111  C. 11011.0111  D. 10111.0111    E. 10111.1111

 

4.       完全二叉树的结点个数为4 * N + 3,则它的叶结点个数为( )。

A. 2 * N   B. 2 * N - 1   C. 2 * N + 1   D. 2 * N - 2   E. 2 * N + 2

 

5.       平面上有五个点A(5, 3), B(3, 5), C(2, 1), D(3, 3), E(5, 1)。以这五点作为完全图G的顶点,每两点之间的直线距离是图G中对应边的权值。图G的最小生成树中的所有边的权值综合为( )。

A. 8   B. 7+第十一届全国青少年信息学奥林匹克联赛初赛试题 - plyisme - 潘凌云的博客  C. 9  D. 6+第十一届全国青少年信息学奥林匹克联赛初赛试题 - plyisme - 潘凌云的博客   E. 4+2第十一届全国青少年信息学奥林匹克联赛初赛试题 - plyisme - 潘凌云的博客+第十一届全国青少年信息学奥林匹克联赛初赛试题 - plyisme - 潘凌云的博客

 

6.       下列设备中没有计算功能的是( )。

A. 笔记本电脑   B. 掌上电脑   C. 智能手机

D. 电子计算器   E. 液晶显示器

 

7.       Intel的首颗64位处理器是( )。

A. 8088   B. 8086   C. 80386   D. 80486   E. Pentium

 

8.       常见的邮件传输服务器使用( )协议发送邮件。

A. HTTP   B. SMTP   C. TCP    D. FTP   E. POP3

 

9.       不能在Linux上使用的网页浏览器是( )。

A. Internet Explore   B. Netscape   C. Opera   D. Firefox   E. Mozilla

 

10.   一位艺术史学家有200001024 * 768的真彩色图像,如果将这些图像以位图形式保存在CD光盘上(一张CD光盘的容量按600M计算),大约需要( )张CD光盘。

A. 1   B. 10   C. 100   D. 1000   E. 10000

 

二、 不定项选择题 (10题,每题1.5分,共计15分。多选或少选均不得分)。

 

11.   A = trueB = falseC = falseD = true,以下逻辑运算表达式值为真的有( )。

A. (A∧B)∨(C∧D)   B. ((A∧B)∨C)∧D   C. A∧((B∨C)∨D)

D. (A∧(B∨C))∨D   E. (A∨B)∧(C∨D)

 

12.    (3725)8 + (B)16的运算结果是( )。

A. (3736)8   B. (2016)10   C. (11111100000)2   D. (3006)10   E. (7E0)16

 

13.   二叉树T的宽度优先遍历序列为A B C D E F G H I,已知AC的父结点,DG的父结点,FI的父结点,树中所有结点的最大深度为3(根结点深度设为0),可知E的父结点可能是( )。

A. A   B. B   C. C   D. D   E. F

 

14.   设栈S的初始状态为空,元素a, b, c, d, e, f, g依次入栈,以下出栈序列不可能出现的有( )。

A. a, b, c, e, d, f, g   B. b, c, a, f, e, g, d   C. a, e, c, b, d, f, g

D. d, c, f, e, b, a, g   E. g, e, f, d, c, b, a

 

15.   下列外设接口中可以通过无线连接的方式连接设备的是( )。

A. USB 2.0 高速版   B. 红外   C. 蓝牙   D. 串口   E. IEEE 802.11g 无线网卡

 

16.   处理器A每秒处理的指令数是处理器B2倍。某一特定程序P分别编译为处理器A和处理器B的指令,编译结果处理器A的指令数是处理器B4倍。已知程序P的算法时间复杂度为O(n2),如果处理器A执行程序P时能在一小时内完成的输入规模为n,则处理器B执行程序P时能在一小时内完成的输入规模为( )。

A. 4 * n   B. 2 * n   C. n   D. n / 2   E. n / 4

 

17.   以下哪个(些)不是计算机的输出设备( )。

A. 鼠标   B. 显示器   C. 键盘   D. 扫描仪   E. 绘图仪

 

18.   以下断电之后将不能保存数据的有( )。

A. 硬盘   B. 寄存器   C. 显存   D. 内存   E. 高速缓存

 

19.   下列活动中属于信息学奥赛系列活动的是( )。

A. NOIP   B. NOI   C. IOI   D. 冬令营   E. 国家队选拔赛

20.   下列关于高级语言的说法正确的有( )。

A. Ada是历史上的第一个高级语言

B. PascalC都是编译执行的高级语言

C. C++是历史上的第一个支持面向对象的语言

D. 编译器将高级语言程序转变为目标代码

E. 高级语言程序比汇编语言程序更容易从一种计算机移植到另一种计算机上

 

三.问题求解(请在空格处填上答案,每空5,共计10

 

1.       将数组{32, 74, 25, 53, 28, 43, 86, 47}中的元素按从小到大的顺序排列,每次可以交换任意两个元素,最少需要交换      次。

 

2.     取火柴游戏的规则如下:一堆火柴有N根,AB两人轮流取出。每人每次可以取1根或2根,最先没有火柴可取的人为败方,另一方为胜方。如果先取者有必胜策略则记为1,先取者没有必胜策略记为0。当N分别为100200300400500时,先取者有无必胜策略的标记顺序为                        (回答应为一个由0/1组成的字符串)。

 

四.阅读程序(4题,每题8分,共计32

 

1 var

    a, b, c, p, q : integer;

    r : array[0..2] of integer;

begin

    read(a, b, c);

    p := a div b div c;

    q := b - c + a + p;

    r[0] := a * p div q * q;

    r[1] := r[0] * (r[0] - 300);

    if (3 * q - p mod 3 <= r[0]) and (r[2] = r[2]) then

       r[1] := r[r[0] div p mod 2]

    else r[1] := q mod p;

    writeln(r[0] - r[1]);

end.

输入:100 7 3

输出:           

 

2 var

    a : array [1..50] of integer;

    n, i, sum : integer;

procedure work(p, r: integer);

var

    i, j, temp : integer;

begin

    if p < r then begin

       i := p - 1;

       for j := p to r - 1 do

           if a[j] >= a[r] then begin

              inc(i);

              temp := a[i]; a[i] := a[j]; a[j] := temp;

           end;

       temp := a[i + 1]; a[i + 1] := a[r]; a[r] := temp;

       work(p, i);

       work(i + 2, r);

    end;

end;

begin

    read(n);

    for i := 1 to n do read(a[i]);

    work(1, n);

    for i := 1 to n - 1 do sum := sum + abs(a[i + 1] - a[i]);

    writeln(sum);

end.

输入:10 23 435 12 345 3123 43 456 12 32 -100

输出:          

 

3 var

    str : string;

    len, i, j : integer;

    nchr : array [0..25] of integer;

    mmin : char;

begin

    mmin := 'z';

    readln(str);

    len := length(str);

    i := len;

    while i >= 2 do begin

       if str[i - 1] < str[i] then break;

       dec(i);

    end;

    if i = 1 then begin

       writeln('No result!');

       exit;

    end;

    for j := 1 to i - 2 do write(str[j]);

    fillchar(nchr, sizeof(nchr), 0);

    for j := i to len do begin

       if (str[j] > str[i - 1]) and (str[j] < mmin) then

           mmin := str[j];

       inc(nchr[ord(str[j]) - ord('a')]);

    end;

    dec(nchr[ord(mmin) - ord('a')]);

    inc(nchr[ord(str[i - 1]) - ord('a')]);

    write(mmin);

    for i := 0 to 25 do

       for j := 1 to nchr[i] do

           write(chr(i + ord('a')));

    writeln;

end.

输入:zzyzcccbbbaaa

输出:               

 

4. var

    n : longint;

function g(k : longint) : longint;

begin

    if k <= 1 then g := k

    else g := (2002 * g(k - 1) + 2003 * g(k - 2)) mod 2005;

end;

begin

    read(n);

    writeln(g(n));

end.

输入:2005

输出:              

 

五.完善程序 (5空,每空2分,后6空,每空3分,共28)

 

1.木材加工

题目描述:

    木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头(木头有可能有剩余),需要得到的小段的数目是给定。当然,我们希望得到的小段越长越好,你的任务是计算能够得到的小段木头的最大长度。

    木头长度的单位是cm。原木的长度都是正整数,我们要求切割得到的小段木头的长度也是正整数。

输入:

第一行是两个正整数NK(1 N 100001 K 10000)N是原木的数目,K是需要得到的小段的数目。

接下来的N行,每行有一个110000之间的正整数,表示一根原木的长度。

输出:

输出能够切割得到的小段的最大长度。如果连1cm长的小段都切不出来,输出”0”

输入样例:

3 7

232

124

456

输出样例:

114

程序:

var

    n, k : integer;

    len : array [1..10000] of integer;

    i, left, right, mid : integer;

function isok(t : integer) : boolean;

var

    num, i : integer;

begin

    num := 0;

    for i := 1 to n do begin

       if num >= k then break;

       num :=     ;

    end;

    if      then isok := true

    else isok := false;

end;

begin

    readln(n, k);

    right := 0;

    for i := 1 to n do begin

       readln(len[i]);

       if right < len[i] then right := len[i];

    end;

    inc(right);

        ;

    while      < right do begin

       mid := (left + right) div 2;

       if      then right := mid

       else left := mid;

    end;

    writeln(left);

end.

 

2N叉树

题目描述:

    我们都了解二叉树的先根遍历,中根遍历和后根遍历。当知道先根遍历的结果和中根遍历结果的时候,我们可以唯一的确定二叉树;同样的,如果知道了后根遍历的结果和中根遍历结果,二叉树也是唯一确定的。但是如果只知道先根遍历和后根遍历的结果,二叉树就不是唯一的了。但是我们可以计算满足条件的不同二叉树一共有多少个。这不是一个很困难的问题,稍微复杂一点,我们把这个问题推广到N叉树。

    我们用小写英文字母来表示N叉树的结点,不同的结点用不同的字母表示。比如,对于4叉树,如果先根遍历的结果是abdefgc,后根遍历的结果是defgbca,那么我们可以得到6个不同的4叉树(如下图)。

第十一届全国青少年信息学奥林匹克联赛初赛试题 - plyisme - 潘凌云的博客

输入:

输入数据包括3行。

第一行是一个正整数N(2 N 20),表示我们要考虑N叉树。

第二行和第三行分别是两个字符串序列,分别表示先根遍历和后根遍历的结果。

输出:

输出不同的N叉树的数目。题目中给的数据保证得到的结果小于231

输入样例:

4

abdefgc

defgbca

输出样例:

6

程序:

var

    str1, str2 : string;

    N, len : integer;

    com : array[0..100, 0..100] of longint;

function getcom(x, y : integer) : longint;

begin

    if (y = 0) or (x = y) then    

    else if com[x][y] <> 0 then getcom := com[x][y]

    else begin

       com[x][y] := getcom(x - 1, y)+     ;

       getcom := com[x][y];

    end;

end;

function count(a, b, c : integer) : longint;

var

    sum : longint;

    k, s, t, p : integer;

begin

    sum := 1; k := 0; s := a + 1; t := c;

    if a = b then count := 1

    else begin

       while s <= b do begin

           p := t;

           while str1[s] <> str2[t] do inc(t);

           sum := sum * count(s, s + t - p, p);

           s :=     ;

               ; inc(k);

       end;

       count :=      * getcom(N, k);

    end;

end;

begin

    readln(N); readln(str1); readln(str2);

    len := length(str1);

    writeln(count(    ));

end.


  评论这张
 
阅读(18)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018