1006 - NOIP 2009 提高组初赛试题

试题部分

第 1 题

关于图灵机下面的说法哪个是正确的:

  1.  A. 

    图灵机是世界上最早的电子计算机。

     B. 

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

     C. 

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

     D. 

    图灵机是英国人图灵发明的,在二战中为破译德军的密码发挥了重要作用。


本题共 1.5 分

第 2 题

关于 BIOS 下面的说法哪个是正确的:

  1.  A. 

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

     B. 

    BIOS 里包含了键盘、鼠标、声卡、图形界面显器等常用输入输出设备的驱动程序。

     C. 

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

     D. 

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


本题共 1.5 分

第 3 题

已知大写字母 AA 的 ASCII 编码为 6565(十进制),则大写字母 JJ 的十六进制 ASCII 编码为:

  1.  A. 

    48

     B. 

    49

     C. 

    50

     D. 

    以上都不是


本题共 1.5 分

第 4 题

在字长为 1616 位的系统环境下,一个 1616 位带符号整数的二进制补码为 11111111111011011111111111101101。其对应的十进制整数应该是:

  1.  A. 

    19

     B. 

    -19

     C. 

    18

     D. 

    -18


本题共 1.5 分

第 5 题

一个包含 n 个分支结点(非叶结点)的非空满 k 叉树,k≥1k≥1,它的叶结点数目为:

  1.  A. 

    nk+1nk+1

     B. 

    nk−1nk−1

     C. 

    (k+1)n−1(k+1)n−1

     D. 

    (k−1)n+1(k−1)n+1


本题共 1.5 分

第 6 题

表达式 a*(b+c)-da*(b+c)-d 的后缀表达式是:

  1.  A. 

    abcd*+-abcd*+-

     B. 

    abc+*d-abc+*d-

     C. 

    abc*+d-abc*+d-

     D. 

    -+*abcd-+*abcd


本题共 1.5 分

第 7 题

最优前缀编码,也称 Huffman 编码。这种编码组合的特点是对于较频繁使用的元素给与较短的唯一编码,以提高通讯的效率。下面编码组合哪一组不是合法的前缀编码。

  1.  A. 

    (00,01,10,11)(00,01,10,11)

     B. 

    (0,1,00,11)(0,1,00,11)

     C. 

    (0,10,110,111)(0,10,110,111)

     D. 

    (1,01,000,001)(1,01,000,001)


本题共 1.5 分

第 8 题

快速排序平均情况和最坏情况下的算法时间复杂度分别为:

  1.  A. 

     平均情况O(n \log_{2} n) ,最坏情况O(n^2)

     B. 

    平均情况 O(n),最坏情况 O(n^2)

     C. 

    平均情况O(n),最坏情况O(n \log_{2} n)

     D. 

    平均情况 O(\log_{2}n), 最坏情况O(n)


本题共 1.5 分

第 9 题

下图给出了一个加权无向图,从顶点 V{_{0}}^{} 开始用 prim 算法求最小生成树。则依次加入最小生成树的顶点集合的顶点序列为:

  1.  A. 

    V{_{0}}^{},V{_{1}}^{},V{_{2}}^{},V{_{3}}^{},V{_{5}}^{},V{_{4}}^{}

     B. 

    V{_{0}}^{},V{_{1}}^{},V{_{5}}^{},V{_{4}}^{},V{_{3}}^{},V{_{3}}^{},

     C. 

    V{_{1}}^{},V{_{2}}^{},V{_{3}}^{},V{_{0}}^{},V{_{5}}^{},V{_{4}}^{}

     D. 

    V{_{1}}^{},V{_{2}}^{},V{_{3}}^{},V{_{0}}^{},V{_{4}}^{},V{_{5}}^{}


本题共 1.5 分

第 10 题

全国信息学奥林匹克的官方网站为参与信息学竞赛的老师同学们提供相关的信息和资源,请问全国信息学奥林匹克官方网站的网址是:

  1.  A. 

    http://www.noi.com/

     B. 

    http://www.noi.org/

     C. 

    http://www.noi.cn/

     D. 

    http://www.xinxixue.com/


本题共 1.5 分

第 11 题

关于 CPU 下面哪些说法是正确的:

  1.  A. 

    CPU 全称为中央处理器(或中央处理单元)。

     B. 

    CPU 能直接运行机器语言。

     C. 

    CPU 最早是由 Intel 公司发明的。

     D. 

    同样主频下,32 位的 CPU 比 16 位的 CPU 运行速度快一倍。


本题共 1.5 分

第 12 题

关于计算机内存下面的说法哪些是正确的:

  1.  A. 

    随机存储器(RAM)的意思是当程序运行时,每次具体分配给程序的内存位置是随机而不确定的。

     B. 

    一般的个人计算机在同一时刻只能存/取一个特定的内存单元。

     C. 

    计算机内存严格说来包括主存(memory)、高速缓存(cache)和寄存器(register)三个部分。

     D. 

    1MB内存通常是指1024*1024字节大小的内存。


本题共 1.5 分

第 13 题

关于操作系统下面说法哪些是正确的:

  1.  A. 

    多任务操作系统专用于多核心或多个 CPU 架构的计算机系统的管理。

     B. 

    在操作系统的管理下,一个完整的程序在运行过程中可以被部分存放在内存中。

     C. 

    分时系统让多个用户可以共享一台主机的运算能力,为保证每个用户都得到及时的响应通常会采用时间片轮转调度的策略。

     D. 

    为了方便上层应用程序的开发,操作系统都是免费开源的。


本题共 1.5 分

第 14 题

关于计算机网络,下面的说法哪些是正确的:

  1.  A. 

    网络协议之所以有很多层主要是由于新技术需要兼容过去老的实现方案。

     B. 

    新一代互联网使用的 IPv6 标准是 IPv5 标准的升级与补充。

     C. 

    TCP/IP 是互联网的基础协议簇,包含有 TCP 和 IP 等网络与传输层的通讯协议。

     D. 

    互联网上每一台入网主机通常都需要使用一个唯一的 IP 地址,否则就必须注册一个固定的域名来标明其地址。


本题共 1.5 分

第 15 题

关于 HTML 下面哪些说法是正确的:

  1.  A. 

    HTML 全称超文本标记语言,实现了文本、图形、声音乃至视频信息的统一编码。

     B. 

    HTML 不单包含有网页内容信息的描述,同时也包含对网页格式信息的定义。

     C. 

    网页上的超链接只能指向外部的网络资源,本网站网页间的联系通过设置标签来实现。

     D. 

    点击网页上的超链接从本质上就是按照该链接所隐含的统一资源定位符(URL)请求网络资源或网络服务。


本题共 1.5 分

第 16 题

若 33 个顶点的无权图 G 的邻接矩阵用数组存储为 {{0,1,1},{1,0,1},{0,1,0}}假定在具体存储中顶点依次为: v_{1},v_{2},v_{3}​。关于该图,下面的说法哪些是正确的:

  1.  A. 

    该图是有向图。

     B. 

    该图是强连通的。

     C. 

    该图所有顶点的入度之和减所有顶点的出度之和等于 11。

     D. 

    从 v_{1} 开始的深度优先遍历所经过的顶点序列与广度优先的顶点序列是相同的。


本题共 1.5 分

第 17 题

在带尾指针(链表指针clist 指向尾结点)的非空循环单链表中每个结点都以 next 字段的指针指向下一个节点。假定其中已经有 22 个以上的结点。下面哪些说法是正确的:

  1.  A. 

    如果 p 指向一个待插入的新结点,在头部插入一个元素的语句序列为:p->next = clist->next; clist->next = p;

     B. 

    如果 p 指向一个待插入的新结点,在尾部插入一个元素的语句序列为:p->next = clist;clist->next = p;

     C. 

    在头部删除一个结点的语句序列为:p = clist->next; clist->next = clist->next->next; delete p;

     D. 

    在尾部删除一个结点的语句序列为:p = clist; clist = clist ->next; delete p;


本题共 1.5 分

第 18 题

散列表的地址区间为 0∼100∼10,散列函数为H(K)=K \mod 11。采用开地址法的线性探查法处理冲突,并将关键字序列 26,25,72,38,8,18,5926,25,72,38,8,18,59 存储到散列表中,这些元素存入散列表的顺序并不确定。假定之前散列表为空,则元素 5959 存放在散列表中的可能地址有:

  1.  A. 

    5

     B. 

    7

     C. 

    9

     D. 

    10


本题共 1.5 分

第 19 题

排序算法是稳定的意思是关键码相同的记录排序前后相对位置不发生改变,下列哪些排序算法是稳定的:

  1.  A. 

    插入排序

     B. 

    基数排序

     C. 

    归并排序

     D. 

    冒泡排序


本题共 1.5 分

第 20 题

在参加 NOI 系列竞赛过程中,下面哪些行为是被严格禁止的:

  1.  A. 

    携带书写工具,手表和不具有通讯功能的电子词典进入赛场。

     B. 

    在联机测试中通过手工计算出可能的答案并在程序里直接输出答案来获取分数。

     C. 

    通过互联网搜索取得解题思路。

     D. 

    在提交的程序中启动多个进程以提高程序的执行效率。


本题共 1.5 分

第 21 题

拓扑排序是指将有向无环图 �G 中的所有顶点排成一个线性序列,使得图中任意一对顶点 u 和 v,若 <u,v>∈E(G),则 u 在线性序列中出现在 v 之前,这样的线性序列成为拓扑序列。如下的有向无环图,对其顶点做拓扑排序,则所有可能的拓扑序列的个数为______

 。


本题共 5 分

第 22 题

某个国家的钱币面值有 1,7,72,731,7,7^{2}7^{3}共计四种,如果要用现金付清 1001510015 元的货物,假设买卖双方各种钱币的数量无限且允许找零,那么交易过程中至少需要流通_______张钱币。


本题共 5 分

第 23 题

#include <iostream>
using namespace std;

int a,b;

int work(int a,int b){
	if (a%b)
		return work(b,a%b);
	return b;
}

int main(){
	cin >> a >> b;
	cout << work(a,b) << endl;
	return 0;
}

输入:123 321
输出:_________


本题共 8 分

第 24 题

#include <iostream>
using namespace std;
int main()
{
	int a[4],b[4];
	int i,j,tmp;
	for (i=0;i<4;i++)
		cin >> b[i];
	for (i=0;i<4;i++)
	{
		a[i]=0;
		for (j=0;j<=i;j++)
		{
			a[i]+=b[j];
			b[a[i]%4]+=a[j];
		}
	}
	tmp=1;
	for (i=0;i<4;i++)
	{
		a[i]%=10;
		b[i]%=10;
		tmp*=a[i]+b[i];
	}
	cout << tmp << endl;
	return 0;
}

输入:2 3 5 7
输出:_______________


本题共 8 分

第 25 题

#include <iostream>
using namespace std;

const int maxn=50;
const int y=2009;
int main()
{
	int n,c[maxn][maxn],i,j,s=0;
	cin >> n;
	c[0][0]=1;
	for(i=1;i<=n;i++)
	{
		c[i][0]=1;
		for(j=1;j<i;j++)
			c[i][j]=c[i-1][j-1]+c[i-1][j];
		c[i][i]=1;
	}
	for(i=0;i<=n;i++)
		s=(s+c[n][i])%y;
	cout << s << endl;
	return 0;
}

输入:17
输出:


本题共 8 分

第 26 题

#include <iostream>
using namespace std;

int main()
{
	int n,m,i,j,p,k;
	int a[100],b[100];
	cin >> n >> m;
	a[0]=n;
	i=0;
	p=0;
	k=0;
	do
	{
		for (j=0;j<i;j++)
			if (a[i]==a[j])
			{
				p=1;
				k=j;
				break;
			}
		if (p)
			break;
		b[i]=a[i]/m;
		a[i+1]=a[i]%m*10;
		i++;
	}while (a[i]!=0);
	
	cout << b[0] << ".";
	for (j=1; j<k; j++)
		cout << b[j];
	if (p)
		cout << "(";
	for (j=k;j<i;j++)
		cout << b[j];
	if (p)
		cout << ")";
	cout << endl;
	return 0;
}

输入:5 13
输出:_________


本题共 8 分

第 27 题

(最大连续子段和)给出一个数列(元素个数不多于 100100),数列元素均为负整数、正整数、00。请找出数列中的一个连续子数列,使得这个子数列中包含的所有元素之和最大,在和最大的前提下还要求该子数列包含的元素个数最多,并输出这个最大和以及该连续子数列中元素的个数。例如数列为 4,−5,3,2,44,−5,3,2,4 时,输出 99 和 33;数列为 1,2,3,−5,0,7,81,2,3,−5,0,7,8 时,输出 1616 和 77。

#include <iostream>
using namespace std;

int a[101];
int n,i,ans,len,tmp,beg,end;
int main(){
	cin >> n;
	for (i=1;i<=n;i++)
		cin >> a[i];
	tmp=0;
	ans=0;
	len=0;
	beg=     ①     ;
	for (i=1;i<=n;i++){
		if (tmp+a[i]>ans){
			ans=tmp+a[i];
			len=i-beg;
		}
		else if (        ②         &&i-beg>len)
			len=i-beg;
		if (tmp+a[i]    ③     ){
			beg=     ④     ;
			tmp=0;
		}
		else
			   ⑤        ;
	}
	cout << ans << " " << len << endl;
	return 0;
}
  1. 1.

  2. 2.

  3. 3.

  4. 4.

  5. 5.


本题共 10 分

第 28 题

#include <iostream>
using namespace std;
int hash[60];
int n, x, ans, maxnum;
int work(int now) {
	int first, second, delta, i;
	int ok;
	while (      ①       && !hash[now])
		++now;
	if (now > maxnum)
		return 1;
	first = now;
	for (second = first; second <= maxnum; second++)
		if (hash[second]) {
			delta =       ②       ;  
			if (first + delta *    ③      > maxnum) 
				break;
			if (delta == 0)
				ok = (      ④      ); 
			else{
				ok = 1;
				for (i = 0; i < ans; i++)
					ok =     ⑤     && (hash[first+delta*i]); 
			}
			if (ok){
				for (i = 0; i < ans; i++)
					hash[first+delta*i]--;
				if (work(first)) 
					return 1;
				for (i = 0; i < ans; i++)
					hash[first+delta*i]++;
			}
		}
	return 0;
}
int main(){
	int i;
	memset(hash, 0, sizeof(hash));
	cin >> n;
	maxnum = 0;
	for (i = 0; i < n; i++){
		cin >> x;
		hash[x]++;
		if (x > maxnum)
			maxnum = x;
	}
	for (ans = n; ans >= 1; ans--)
		if ( n%ans==0 &&     ⑥     ) {
			cout << ans << endl;
			break;
		}
	return 0;
}
  1. 1.

  2. 2.

  3. 3.

  4. 4.

  5. 5.

  6. 6.


本题共 18 分

答案部分

第 1 题

关于图灵机下面的说法哪个是正确的:

  1.  A. 

    图灵机是世界上最早的电子计算机。

     B. 

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

     C. 

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

     D. 

    图灵机是英国人图灵发明的,在二战中为破译德军的密码发挥了重要作用。

    正确答案: C


得分: 0 / 1.5 分

第 2 题

关于 BIOS 下面的说法哪个是正确的:

  1.  A. 

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

     B. 

    BIOS 里包含了键盘、鼠标、声卡、图形界面显器等常用输入输出设备的驱动程序。

     C. 

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

     D. 

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

    正确答案: A


得分: 0 / 1.5 分

第 3 题

已知大写字母 AA 的 ASCII 编码为 6565(十进制),则大写字母 JJ 的十六进制 ASCII 编码为:

  1.  A. 

    48

     B. 

    49

     C. 

    50

     D. 

    以上都不是

    正确答案: D


得分: 0 / 1.5 分

第 4 题

在字长为 1616 位的系统环境下,一个 1616 位带符号整数的二进制补码为 11111111111011011111111111101101。其对应的十进制整数应该是:

  1.  A. 

    19

     B. 

    -19

     C. 

    18

     D. 

    -18

    正确答案: B


得分: 0 / 1.5 分

第 5 题

一个包含 �n 个分支结点(非叶结点)的非空满 �k 叉树,�≥1k≥1,它的叶结点数目为:

  1.  A. 

    ��+1nk+1

     B. 

    ��−1nk−1

     C. 

    (�+1)�−1(k+1)n−1

     D. 

    (�−1)�+1(k−1)n+1

    正确答案: D


得分: 0 / 1.5 分

第 6 题

表达式 a*(b+c)-da*(b+c)-d 的后缀表达式是:

  1.  A. 

    abcd*+-abcd*+-

     B. 

    abc+*d-abc+*d-

     C. 

    abc*+d-abc*+d-

     D. 

    -+*abcd-+*abcd

    正确答案: B


得分: 0 / 1.5 分

第 7 题

最优前缀编码,也称 Huffman 编码。这种编码组合的特点是对于较频繁使用的元素给与较短的唯一编码,以提高通讯的效率。下面编码组合哪一组不是合法的前缀编码。

  1.  A. 

    (00,01,10,11)(00,01,10,11)

     B. 

    (0,1,00,11)(0,1,00,11)

     C. 

    (0,10,110,111)(0,10,110,111)

     D. 

    (1,01,000,001)(1,01,000,001)

    正确答案: B


得分: 0 / 1.5 分

第 8 题

快速排序平均情况和最坏情况下的算法时间复杂度分别为:

  1.  A. 

    平均情况 �(�log⁡2�)O(nlog2​n),最坏情况 �(�2)O(n2)

     B. 

    平均情况 �(�)O(n),最坏情况 �(�2)O(n2)

     C. 

    平均情况 �(�)O(n),最坏情况 �(�log⁡2�)O(nlog2​n)

     D. 

    平均情况 �(log⁡2�)O(log2​n), 最坏情况 �(�2)O(n2)

    正确答案: A


得分: 0 / 1.5 分

第 9 题

下图给出了一个加权无向图,从顶点 �0V0​ 开始用 prim 算法求最小生成树。则依次加入最小生成树的顶点集合的顶点序列为:

  1.  A. 

    �0,�1,�2,�3,�5,�4V0​,V1​,V2​,V3​,V5​,V4​

     B. 

    �0,�1,�5,�4,�3,�3V0​,V1​,V5​,V4​,V3​,V3​

     C. 

    �1,�2,�3,�0,�5,�4V1​,V2​,V3​,V0​,V5​,V4​

     D. 

    �1,�2,�3,�0,�4,�5V1​,V2​,V3​,V0​,V4​,V5​

    正确答案: A


得分: 0 / 1.5 分

第 10 题

全国信息学奥林匹克的官方网站为参与信息学竞赛的老师同学们提供相关的信息和资源,请问全国信息学奥林匹克官方网站的网址是:

  1.  A. 

    http://www.noi.com/

     B. 

    http://www.noi.org/

     C. 

    http://www.noi.cn/

     D. 

    http://www.xinxixue.com/

    正确答案: C


得分: 0 / 1.5 分

第 11 题

关于 CPU 下面哪些说法是正确的:

  1.  A. 

    CPU 全称为中央处理器(或中央处理单元)。

     B. 

    CPU 能直接运行机器语言。

     C. 

    CPU 最早是由 Intel 公司发明的。

     D. 

    同样主频下,32 位的 CPU 比 16 位的 CPU 运行速度快一倍。

    正确答案: AB


得分: 0 / 1.5 分

第 12 题

关于计算机内存下面的说法哪些是正确的:

  1.  A. 

    随机存储器(RAM)的意思是当程序运行时,每次具体分配给程序的内存位置是随机而不确定的。

     B. 

    一般的个人计算机在同一时刻只能存/取一个特定的内存单元。

     C. 

    计算机内存严格说来包括主存(memory)、高速缓存(cache)和寄存器(register)三个部分。

     D. 

    1MB内存通常是指1024*1024字节大小的内存。

    正确答案: BD


得分: 0 / 1.5 分

第 13 题

关于操作系统下面说法哪些是正确的:

  1.  A. 

    多任务操作系统专用于多核心或多个 CPU 架构的计算机系统的管理。

     B. 

    在操作系统的管理下,一个完整的程序在运行过程中可以被部分存放在内存中。

     C. 

    分时系统让多个用户可以共享一台主机的运算能力,为保证每个用户都得到及时的响应通常会采用时间片轮转调度的策略。

     D. 

    为了方便上层应用程序的开发,操作系统都是免费开源的。

    正确答案: BC


得分: 0 / 1.5 分

第 14 题

关于计算机网络,下面的说法哪些是正确的:

  1.  A. 

    网络协议之所以有很多层主要是由于新技术需要兼容过去老的实现方案。

     B. 

    新一代互联网使用的 IPv6 标准是 IPv5 标准的升级与补充。

     C. 

    TCP/IP 是互联网的基础协议簇,包含有 TCP 和 IP 等网络与传输层的通讯协议。

     D. 

    互联网上每一台入网主机通常都需要使用一个唯一的 IP 地址,否则就必须注册一个固定的域名来标明其地址。

    正确答案: C


得分: 0 / 1.5 分

第 15 题

关于 HTML 下面哪些说法是正确的:

  1.  A. 

    HTML 全称超文本标记语言,实现了文本、图形、声音乃至视频信息的统一编码。

     B. 

    HTML 不单包含有网页内容信息的描述,同时也包含对网页格式信息的定义。

     C. 

    网页上的超链接只能指向外部的网络资源,本网站网页间的联系通过设置标签来实现。

     D. 

    点击网页上的超链接从本质上就是按照该链接所隐含的统一资源定位符(URL)请求网络资源或网络服务。

    正确答案: BD


得分: 0 / 1.5 分

第 16 题

若 33 个顶点的无权图 �G 的邻接矩阵用数组存储为 {{0,1,1},{1,0,1},{0,1,0}}{{0,1,1},{1,0,1},{0,1,0}},假定在具体存储中顶点依次为: �1,�2,�3v1​,v2​,v3​。关于该图,下面的说法哪些是正确的:

  1.  A. 

    该图是有向图。

     B. 

    该图是强连通的。

     C. 

    该图所有顶点的入度之和减所有顶点的出度之和等于 11。

     D. 

    从 �1v1​ 开始的深度优先遍历所经过的顶点序列与广度优先的顶点序列是相同的。

    正确答案: ABD


得分: 0 / 1.5 分

第 17 题

在带尾指针(链表指针 clist 指向尾结点)的非空循环单链表中每个结点都以 next 字段的指针指向下一个节点。假定其中已经有 22 个以上的结点。下面哪些说法是正确的:

  1.  A. 

    如果 �p 指向一个待插入的新结点,在头部插入一个元素的语句序列为:p->next = clist->next; clist->next = p;

     B. 

    如果 �p 指向一个待插入的新结点,在尾部插入一个元素的语句序列为:p->next = clist;clist->next = p;

     C. 

    在头部删除一个结点的语句序列为:p = clist->next; clist->next = clist->next->next; delete p;

     D. 

    在尾部删除一个结点的语句序列为:p = clist; clist = clist ->next; delete p;

    正确答案: AC


得分: 0 / 1.5 分

第 18 题

散列表的地址区间为 0∼100∼10,散列函数为 �(�)=�mod11H(K)=Kmod11。采用开地址法的线性探查法处理冲突,并将关键字序列 26,25,72,38,8,18,5926,25,72,38,8,18,59 存储到散列表中,这些元素存入散列表的顺序并不确定。假定之前散列表为空,则元素 5959 存放在散列表中的可能地址有:

  1.  A. 

    5

     B. 

    7

     C. 

    9

     D. 

    10

    正确答案: ABC


得分: 0 / 1.5 分

第 19 题

排序算法是稳定的意思是关键码相同的记录排序前后相对位置不发生改变,下列哪些排序算法是稳定的:

  1.  A. 

    插入排序

     B. 

    基数排序

     C. 

    归并排序

     D. 

    冒泡排序

    正确答案: ABCD


得分: 0 / 1.5 分

第 20 题

在参加 NOI 系列竞赛过程中,下面哪些行为是被严格禁止的:

  1.  A. 

    携带书写工具,手表和不具有通讯功能的电子词典进入赛场。

     B. 

    在联机测试中通过手工计算出可能的答案并在程序里直接输出答案来获取分数。

     C. 

    通过互联网搜索取得解题思路。

     D. 

    在提交的程序中启动多个进程以提高程序的执行效率。

    正确答案: ACD


得分: 0 / 1.5 分

第 21 题

拓扑排序是指将有向无环图 �G 中的所有顶点排成一个线性序列,使得图中任意一对顶点 �u 和 �v,若 <�,�>∈�(�)<u,v>∈E(G),则 �u 在线性序列中出现在 �v 之前,这样的线性序列成为拓扑序列。如下的有向无环图,对其顶点做拓扑排序,则所有可能的拓扑序列的个数为______

 。

  1. 正确答案: 432


得分: 0 / 5 分

第 22 题

某个国家的钱币面值有 1,7,72,731,7,72,73 共计四种,如果要用现金付清 1001510015 元的货物,假设买卖双方各种钱币的数量无限且允许找零,那么交易过程中至少需要流通_______张钱币。

  1. 正确答案: 35


得分: 0 / 5 分

第 23 题

#include <iostream>
using namespace std;

int a,b;

int work(int a,int b){
	if (a%b)
		return work(b,a%b);
	return b;
}

int main(){
	cin >> a >> b;
	cout << work(a,b) << endl;
	return 0;
}

输入:123 321
输出:_________

  1. 正确答案: 3


得分: 0 / 8 分

第 24 题

#include <iostream>
using namespace std;
int main()
{
	int a[4],b[4];
	int i,j,tmp;
	for (i=0;i<4;i++)
		cin >> b[i];
	for (i=0;i<4;i++)
	{
		a[i]=0;
		for (j=0;j<=i;j++)
		{
			a[i]+=b[j];
			b[a[i]%4]+=a[j];
		}
	}
	tmp=1;
	for (i=0;i<4;i++)
	{
		a[i]%=10;
		b[i]%=10;
		tmp*=a[i]+b[i];
	}
	cout << tmp << endl;
	return 0;
}

输入:2 3 5 7
输出:_______________

  1. 正确答案: 5850


得分: 0 / 8 分

第 25 题

#include <iostream>
using namespace std;

const int maxn=50;
const int y=2009;
int main()
{
	int n,c[maxn][maxn],i,j,s=0;
	cin >> n;
	c[0][0]=1;
	for(i=1;i<=n;i++)
	{
		c[i][0]=1;
		for(j=1;j<i;j++)
			c[i][j]=c[i-1][j-1]+c[i-1][j];
		c[i][i]=1;
	}
	for(i=0;i<=n;i++)
		s=(s+c[n][i])%y;
	cout << s << endl;
	return 0;
}

输入:17
输出:

  1. 正确答案: 487


得分: 0 / 8 分

第 26 题

#include <iostream>
using namespace std;

int main()
{
	int n,m,i,j,p,k;
	int a[100],b[100];
	cin >> n >> m;
	a[0]=n;
	i=0;
	p=0;
	k=0;
	do
	{
		for (j=0;j<i;j++)
			if (a[i]==a[j])
			{
				p=1;
				k=j;
				break;
			}
		if (p)
			break;
		b[i]=a[i]/m;
		a[i+1]=a[i]%m*10;
		i++;
	}while (a[i]!=0);
	
	cout << b[0] << ".";
	for (j=1; j<k; j++)
		cout << b[j];
	if (p)
		cout << "(";
	for (j=k;j<i;j++)
		cout << b[j];
	if (p)
		cout << ")";
	cout << endl;
	return 0;
}

输入:5 13
输出:_________

  1. 正确答案: 0.(384615)


得分: 0 / 8 分

第 27 题

(最大连续子段和)给出一个数列(元素个数不多于 100100),数列元素均为负整数、正整数、00。请找出数列中的一个连续子数列,使得这个子数列中包含的所有元素之和最大,在和最大的前提下还要求该子数列包含的元素个数最多,并输出这个最大和以及该连续子数列中元素的个数。例如数列为 4,−5,3,2,44,−5,3,2,4 时,输出 99 和 33;数列为 1,2,3,−5,0,7,81,2,3,−5,0,7,8 时,输出 1616 和 77。

#include <iostream>
using namespace std;

int a[101];
int n,i,ans,len,tmp,beg,end;
int main(){
	cin >> n;
	for (i=1;i<=n;i++)
		cin >> a[i];
	tmp=0;
	ans=0;
	len=0;
	beg=     ①     ;
	for (i=1;i<=n;i++){
		if (tmp+a[i]>ans){
			ans=tmp+a[i];
			len=i-beg;
		}
		else if (        ②         &&i-beg>len)
			len=i-beg;
		if (tmp+a[i]    ③     ){
			beg=     ④     ;
			tmp=0;
		}
		else
			   ⑤        ;
	}
	cout << ans << " " << len << endl;
	return 0;
}
  1. 1.

    正确答案: 0

  2. 2.

    正确答案: tmp+a[i]==ans / a[i]+tmp==ans / ans==a[i]+tmp

  3. 3.

    正确答案: <0

  4. 4.

    正确答案: i

  5. 5.

    正确答案: tmp+=a[i] / tmp=tmp+a[i]


得分: 0 / 10 分

第 28 题

#include <iostream>
using namespace std;
int hash[60];
int n, x, ans, maxnum;
int work(int now) {
	int first, second, delta, i;
	int ok;
	while (      ①       && !hash[now])
		++now;
	if (now > maxnum)
		return 1;
	first = now;
	for (second = first; second <= maxnum; second++)
		if (hash[second]) {
			delta =       ②       ;  
			if (first + delta *    ③      > maxnum) 
				break;
			if (delta == 0)
				ok = (      ④      ); 
			else{
				ok = 1;
				for (i = 0; i < ans; i++)
					ok =     ⑤     && (hash[first+delta*i]); 
			}
			if (ok){
				for (i = 0; i < ans; i++)
					hash[first+delta*i]--;
				if (work(first)) 
					return 1;
				for (i = 0; i < ans; i++)
					hash[first+delta*i]++;
			}
		}
	return 0;
}
int main(){
	int i;
	memset(hash, 0, sizeof(hash));
	cin >> n;
	maxnum = 0;
	for (i = 0; i < n; i++){
		cin >> x;
		hash[x]++;
		if (x > maxnum)
			maxnum = x;
	}
	for (ans = n; ans >= 1; ans--)
		if ( n%ans==0 &&     ⑥     ) {
			cout << ans << endl;
			break;
		}
	return 0;
}
  1. 1.

    正确答案: now<=maxnum / !(now>maxnum)

  2. 2.

    正确答案: second-first

  3. 3.

    正确答案: (ans-1)

  4. 4.

    正确答案: hash[first]>=ans / hash[second]>=ans / hash[first+delta]>=ans

  5. 5.

    正确答案: ok

  6. 6.

    正确答案: work(0) / work(0)==1 / work(0)>0


得分: 0 / 18 分

  • 43
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NOIP(全国青少年信息学奥林匹克竞赛)是中国举办的一项顶尖竞赛,旨在选拔和培养青少年信息学人才。CSP(计算机科学与编程竞赛)是NOIP初赛,包括提高和普及两个不同难度的竞赛。 从1995年到2021年,CSP提高复赛试题持续不断地推陈出新。试题的难度和内容与时俱进,反映了信息科技和计算机学科的发展趋势。 这些试题涵盖了计算机科学与编程的各个领域,如数据结构、算法设计与分析、图论、动态规划等。这些题目不仅要求考生熟悉编程语言,还需要考生具备分析问题、设计算法、优化程序的能力。因此,参加CSP的考生需要有扎实的计算机基础知识和编程技巧。 CSP试题的设计目标是培养学生的创新思维、动手能力和问题解决能力。试题往往是实际问题的抽象化,考生需要将问题拆解、建模,并设计出适用的算法和程序来解决。这种综合应用的能力培养能够提高学生的实践能力和创新能力,为他们今后的学习和工作打下坚实的基础。 此外,CSP试题还注重培养学生的团队合作精神和竞技意识。复赛试题通常要求考生在限定时间内完成,这要求考生在有限的时间内高效地协作和解决问题。 总之,NOIP CSP提高复赛试题的不断更新和提高,以及其注重培养学生的综合能力,使得参加这项竞赛的学生能够更好地理解和应用计算机科学知识,为他们日后的学习和发展打下良好的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值