admin管理员组

文章数量:1531747

2024年6月29日发(作者:)

青少年软件编程(C语言六级)等级考试真题试卷(2021年9月)

题目总数:4 总分数:100 时间:不限时

第 1 题 问答题

双端队列

定义一个双端队列,进队操作与普通队列一样,从队尾进入。出队操作既可以从队头,也可以从队尾。编程实

现这个数据结构。

时间限制:1000

内存限制:65535

输入

第一行输入一个整数t,代表测试数据的组数。 每组数据的第一行输入一个整数n,表示操作的次数。 接着输

入n行,每行对应一个操作,首先输入一个整数type。

当type=1,进队操作,接着输入一个整数x,表示进入队列的元素。

当type=2,出队操作,接着输入一个整数c,c=0代表从队头出队,c=1代表从队尾出队。

n <= 1000

输出

对于每组测试数据,输出执行完所有的操作后队列中剩余的元素,元素之间用空格隔开,按队头到队尾的顺序输

出,占一行。如果队列中已经没有任何的元素,输出NULL。

样例输入

2

5

1 2

1 3

1 4

2 0

2 1

6

1 1

1 2

1 3

2 0

2 1

2 0

样例输出

3

NULL

博学佑航-青少年考级竞赛题库

 答案

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

int n,t,type,c;

int a[1005]={0};

int Top=0,Back=0;

int main()

{

cin>>t;

while(t--)

{

Top=0;

Back=0;

cin>>n;

while(n--)

{

}

if(Top==Back)

cin>>type>>c;

if(type==1)

{

}

else

{

}

if(c==0)

{

}

else

{

}

Back--;

Top++;

a[Back++]=c;

博学佑航-青少年考级竞赛题库

{

}

cout<<"NULL"<

第 2 题 问答题

区间合并

给定 n 个闭区间 [ai; bi],其中i=1,2,...,n。任意两个相邻或相交的闭区间可以合并为一个闭区间。

例如,[1;2] 和 [2;3] 可以合并为 [1;3],[1;3] 和 [2;4] 可以合并为 [1;4],但是[1;2] 和 [3;4] 不可以

合并。

我们的任务是判断这些区间是否可以最终合并为一个闭区间,如果可以,将这个闭区间输出,否则

输出no。

时间限制:1000

内存限制:65536

输入

第一行为一个整数n,3 ≤ n ≤ 50000。表示输入区间的数量。 之后n行,在第i行上(1 ≤ i ≤ n),

为两个整数 ai 和 bi ,整数之间用一个空格分隔,表示区间 [ai; bi](其中 1 ≤ ai ≤ bi ≤ 10000)。

输出

输出一行,如果这些区间最终可以合并为一个闭区间,输出这个闭区间的左右边界,用单个空格隔

开;否则输出 no。

样例输入

5

5 6

1 5

10 10

6 9

8 10

样例输出

1 10

 答案

#include

#include

#include

#include

#include

using namespace std;

int t,n,min1,max1;

struct node {

int x, y;

}a[101000];

int N;

int cmp(const node&w, const node&e) {

if (w.x>e.x) return 0;

return 1;

博学佑航-青少年考级竞赛题库

本文标签: 区间操作输入队列整数