通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"NOIP真题" 试卷中 NOIP第十五届全国青少年信息学奥林匹克联赛初赛试题[2009提高组] 中有题目如下:
第1题
( 寻找等差数列 ) 有一些长度相等的等差数列(数列中每个数都为 0~59 的整数),设 长度均为 L,将等差数列中的所有数打乱顺序放在一起。现在给你这些打乱后的数,问原先, L 最大可能为多大?先读入一个数 n(1<=n<=60),再读入 n 个数,代表打乱后的数。输出等 差数列最大可能长度 L。
#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; }
所属试卷:NOIP第十五届全国青少年信息学奥林匹克联赛初赛试题[2009提高组]
下列语句中,错误的是。
若有以下定义:则错误的语句是。
在E-R图中,用( )来表示实体之间联系。
有以下程序程序运行后的输出结果是( )。
使用运算符测试集合包含集合A是否为集合B的真子集的表达
字符串“ab\n\\012\\\”的长度是______
以下函数fun的功能是:统计用数字0~9可以组成多少个
给定程序MODI1.C是建立一个带头结点的单向链表,并
以下不正确的定义语句是( )。
下列函数的时间复杂度是( )。
______目录用来存放系统管理员使用的管理程序。
Linux系统中有三种基本的文件类型:________
当系统管理员需升级内核版本和改变系统硬件配置时,应(
安装Linux系统对硬盘分区时,必须有两种分区类 __
在vi中退出不保存的命令是?
设关系模式R(A,B,C)和S(B,C,E),R和S执
Mysqldump语句使用 _____参数可实现备份整
数据库的恢复是以 ___ 为基础的。
下面除了( )之外其它都是属于数据模型的三要素。
SQL语句中的条件用以下哪一项来表达
排序趟数与序列的原始状态有关的排序方法是( )排序法。
假设输入字符串由 ASCII 可见字符组成,f(a,
设有如下函数定义:若执行调用语句:n=fun(3);,
请编写函数fun,其功能是:在形参指针所指的4个整
有以下程序程序运行后的输出结果是
有以下程序,程序运行后的输出结果是( )。
输出:( )
下列属于视频文件格式的有。
(序列重排)全局数组变量 a 定义如下:const i
将 2006 个人分成若干不相交的子集,每个子集至少有
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2