通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"NOIP真题" 试卷中 NOIP第十九届全国青少年信息学奥林匹克联赛初赛试题[2013提高组] 中有题目如下:
第1题
(两元序列)试求一个整数序列中,最长的仅包含两个不同整数的连续子序列。如有多个子 序列并列最长,输出任意一个即可。例如,序列“ 1 1 2 3 2 3 2 3 3 1 1 1 3 1 ”中,有 两段满足条件的最长子序列,长度均为 7,分别用下划线和加粗斜体标出。
#include <iostream> using namespace std; int main(){ const int SIZE = 100; int n, i, j, a[SIZE], cur1, cur2, count1, count2, ans_length, ans_start, ans_end; //cur1, cur2 分别表示当前子序列中的两个不同整数 //count1, count2 分别表示 cur1, cur2 在当前子序列中出现的次数 cin>>n; for (i = 1;i <= n;i++) cin>>a[i]; i = 1; j = 1; //i, j 分别表示当前子序列的首尾,并保证其中至多有两个不同整数 while ((j <= n) && (a[j] == a[i])) j++; cur1 = a[i]; cur2 = a[j]; count1 =①; count2 = 1; ans_length = j - i + 1; while (j < n) { j++; if (a[j] == cur1) count1++; else if (a[j] == cur2) count2++; else { if (a[j - 1] ==② ) { while (count2 > 0) { if (a[i] == cur1) count1--; else count2--; i++; } cur2 = a[j]; count2 = 1; }else { while (count1 > 0) { if (a[i] == cur1) ③ ; else ④ ; i++; } ⑤ ; count1 = 1; } } if (ans_length < j - i + 1) { ans_length = j - i + 1; ans_start = i; ans_end = j; } } for (i = ans_start;i <= ans_end;i++) cout<<a[i]<<' '; return 0; }
所属试卷:NOIP第十九届全国青少年信息学奥林匹克联赛初赛试题[2013提高组]
有如下类定义,编译时发现有一处语法错误,对这个错误最准
下列类中,不允许存储重复对象的是( )。
下列描述中,错误的是( )。
(本题 11 分)对于题 43 中计算机 M 和程序
下列程序查找输入8个整数中的最小数。请仔细阅读他的程序
给定程序中,函数fun的功能是:计算下式前n项的和作为
若有定义语句:在其后执行语句:z=0.9+x/y;则z
请在下面程序的横线处填上适当字句,以使程序完整,并使程
已知 vec =[[1,2],[3,4]],则表达式
表达式set([1,1,2,3])的值为_______
关于地址和指针,以下说法正确的是( )。
在C语言源程序中,一个变量代表____________
以下程序执行结果是___________。
结束后台进程的命令是______
用于文件系统直接修改文件权限管理命令为:( )
链接分为:硬链接和( )。
在使用mkdir命令创建新的目录时,在其父目录不存在时
如何装载(mount)上在 /etc/fstab 文件
命令yum provides netstat的含义是
MYSQL只有满足联接条件的记录才包含在查询结果中,这
锁粒度是指锁定的对象,MySQL常见的有表级锁、页级锁
定义的游标cur读取student表中学生名单(含学号
若要删除数据库中已经存在的表S,可用( )。
队列的特点是先进先出,栈的特点是后进先出( )
一个递归算法必须包括( )。
算法的目的是
假设输入的n是绝对值不超过1000的整数,完成下面的判
当a=3,b=2,c=1时,执行以下程序段后b=___
给定程序MODI1.C中,函数void list(MY
如果根结点的深度记为 1,则一棵恰有2011 个叶结点
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2