noip普及组复赛模拟试题26(答案)

合集下载

CCF全国信息学奥林匹克联赛NOIP普及组复赛试题

CCF全国信息学奥林匹克联赛NOIP普及组复赛试题

CCF全国信息学奥林匹克联赛NOIP普及组复赛试题CCF全国信息学奥林匹克联赛(NOIP2018)复赛普及组(请选手务必仔细阅读本页内容)注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。

2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。

3、全国统一评测时采用的机器配置为:Intel(R) Core(TM) i7-****************,内存32GB。

上述时限以此配置为准。

4、只提供Linux格式附加样例文件。

5、特别提醒:评测在当前最新公布的NOI Linux下进行,各语言的编译器版本以其为准。

1. 标题统计(title.cpp/c/pas)【问题描述】凯凯刚写了一篇美妙的作文,请问这篇作文的标题中有多少个字符?注意:标题中可能包含大、小写英文字母、数字字符、空格和换行符。

统计标题字符数时,空格和换行符不计算在内。

【输入格式】输入文件名为title.in。

输入文件只有一行,一个字符串s。

【输出格式】输出文件名为title.out。

输出文件只有一行,包含一个整数,即作文标题的字符数(不含空格和换行符)。

见选手目录下的title/title1.in和title/title1.ans。

【输入输出样例1说明】标题中共有3个字符,这3个字符都是数字字符。

见选手目录下的title/title2.in和title/title2.ans。

【输入输出样例2说明】标题中共有5个字符,包括1个大写英文字母,1个小写英文字母和2个数字字符,还有1个空格。

由于空格不计入结果中,故标题的有效字符数为4个。

【数据规模与约定】规定|s|表示字符串s的长度(即字符串中的字符和空格数)。

对于40%的数据,1≤|s|≤5,保证输入为数字字符及行末换行符。

对于80%的数据,1≤|s|≤5,输入只可能包含大、小写英文字母、数字字符及行末换行符。

对于100%的数据,1≤|s|≤5,输入可能包含大、小写英文字母、数字字符、空格和行末换行符。

NOIP普及组历届试题分析

NOIP普及组历届试题分析

对于100%的数据,3 ≤ n ≤ 100 测验题给出的正整数大小不超过10,000。
试题分析

题意大意:给你n个数,在这n个数中,找 到满足A+B=C的C的个数,注意不是这个 等式的个数。
样例中,1,2,3,4有1+2=3,1+3=4两个。

由于本题数据规模n<=100,我们可以直接
枚举C, A, B,三层循环解决问题。
扫雷游戏 (noip2015普及组第二题)
输入样例 1 33 *?? ??? ?*? 输入样例 2 23 ?*? *??
输出样例 1 mine.out *10 221 1*1 输出样例 2 mine.out 2*1 *21
对于 100%的数据,1≤n≤100,1≤m≤100
问题分析:
本题也是简单的枚举类试题。 我们从雷区的第一行第一列(1,1)开始,判断它周围 有多少个地雷。 由于本题读入的是字符,读入时需要注意: readln(n,m); for i=1 to n do begin for j=1 to m do read(a[i][j]); readln; end;
比例简化 (noip2014普及组第二题)



在社交媒体上,经常会看到针对某一个观点同意与 否的民意调查以及结果。例如,对某 一观点表示 支持的有 1498 人,反对的有 902 人,那么赞同与 反对的比例可以简单的记为1498:902。 不过,如果把调查结果就以这种方式呈现出来,大 多数人肯定不会满意。因为这个比例的数值太大, 难以一眼看出它们的关系。对于上面这个例子,如 果把比例记为 5:3,虽然与 真实结果有一定的误差, 但依然能够较为准确地反映调查结果,同时也显得 比较直观。 现给出支持人数 A,反对人数 B,以及一个上限 L, 请你将 A 比 B 化简为 A’比 B’,要求在 A’和 B’均 不大于 L 且 A’和 B’互质(两个整数的最大公约数 是 1)的前提下,A’/B’ ≥ A/B 且 A’/B’ - A/B 的值 尽可能小。

NOIP普及组初赛历年试题及答案完善题篇

NOIP普及组初赛历年试题及答案完善题篇

NOIP2013-1. 序列重排 全局数组变量 a 定义如下: const int SIZE = 100; int a[SIZE], n; 它记录着一个长度为 n 的序列 a[1], a[2], ..., a[n]。 现在需要一个函数, 以整数 p (1 ≤ p≤ n)为参数, 实现如下功能:将序列 a 的前 p 个数与后 n – p 个数对调, 且不改变这 p 个数(或 n – p 个数)之间的相对位置。 例如,长度为 5 的序列 1, 2, 3, 4, 5,当 p = 2 时重排结果为 3, 4, 5, 1, 2。 有一种朴素的算法可以实现这一需求, 其时间复杂度为 O(n)、 空间复杂度为 O(n): void swap1(int p) { int i, j, b[SIZE]; for (i = 1; i <= p; i++) b[n–p+i] = a[i]; for (i = p + 1; i <= n; i++) b[i-p]= a[i]; for(i=1;i<= n;i++) a[i] = b[i]; } 我们也可以用时间换空间, 使用时间复杂度为 O(n2)、 空间复杂度为 O(1)的算法: void swap2(int p) { int i, j, temp; for (i = p + 1; i <= n; i++) { temp = a[i]; for(j=i;j>= i–p+1;j--) a[j] = a[j - 1]; a[i – p]= temp; } }
NOIP2011-1.子矩阵 给输入一个 n1*m1 的矩阵 a,和 n2*m2 的矩阵 b ,问 a 中是否存在子矩阵和 b 相等。若存在,输出所有子矩阵左上角的坐标:若不存在输出“There isno answer ”。

noip普及组复赛试题及答案

noip普及组复赛试题及答案

noip普及组复赛试题及答案一、选择题1. 在计算机科学中,以下哪个概念与数据结构最相关?A. 算法B. 操作系统C. 网络协议D. 编译原理答案:A2. 以下哪种排序算法的时间复杂度为O(n^2)?A. 快速排序B. 归并排序C. 堆排序D. 冒泡排序答案:D3. 在C++中,以下哪个关键字用于定义类?A. structB. unionC. enumD. typedef答案:A4. 以下哪个选项不是数据库管理系统(DBMS)的特性?A. 数据持久性B. 数据共享C. 数据加密D. 数据独立性答案:C5. 在计算机网络中,TCP和UDP协议分别属于哪一层?A. 传输层B. 应用层C. 网络层D. 物理层答案:A二、填空题1. 在计算机程序中,______ 用于定义数据的存储方式和组织形式。

答案:数据结构2. 一个算法的时间复杂度为O(1),表示该算法的执行时间与输入数据的规模______。

答案:无关3. 在C++中,______ 是一种特殊的类,它提供了一种方式来定义数据类型。

答案:typedef4. 数据库管理系统(DBMS)通常包含数据定义语言(DDL)、数据操纵语言(DML)和______。

答案:数据控制语言(DCL)5. 在计算机网络中,______ 协议负责在网络层进行数据包的路由选择。

答案:IP三、简答题1. 请简述面向对象编程(OOP)的三个基本特征。

答案:封装、继承、多态2. 描述二分查找算法的基本步骤。

答案:二分查找算法的基本步骤包括:首先确定数组是有序的,然后取中间元素与目标值比较,如果中间元素等于目标值,则查找成功;如果目标值小于中间元素,则在左半部分继续查找;如果目标值大于中间元素,则在右半部分继续查找,直到找到目标值或查找范围为空。

四、编程题1. 编写一个函数,实现对整数数组的排序。

答案:以下是一个简单的冒泡排序算法实现:```cppvoid bubbleSort(int arr[], int n) {for (int i = 0; i < n-1; i++) {for (int j = 0; j < n-i-1; j++) {if (arr[j] > arr[j+1]) {swap(arr[j], arr[j+1]);}}}}```2. 编写一个函数,实现计算一个整数的阶乘。

CSP-J (NOIP普及组) 复赛2010-2023考查内容一览表

CSP-J (NOIP普及组) 复赛2010-2023考查内容一览表

CSP-J (NOIP提高组) 复赛2010-2020考查内容NOIP2017提高组T4奶酪深搜、广搜、并查集T5宝藏状压DPT6列队线段树NOIP2016提高组T1玩具谜题模拟T2天天爱跑步倍增LCAT3换教室动态规划(高级)T4组合数问题前缀和、杨辉三角T5蚯蚓队列、单调性T6愤怒的小鸟状压DPNOIP2015提高组T1神奇的幻方模拟T2信息传递并查集T3斗地主动态规划(高级)、深搜T4跳石头二分T5子串滚动数组、动态规划(高级) T6运输计划二分、LCA、非递归NOIP2014提高组T1生活大爆炸版石头剪刀布模拟T2联合权值动态规划(高级)、前缀和T3飞扬的小鸟动态规划(高级)T4无线网络发射器选址枚举T5寻找道路最短路T6解方程数论、枚举NOIP2013提高组T1转圈游戏快速幂T2火柴排队归并排序、逆序对T3货车运输最小生成树、LCA、倍增T4积木大赛贪心T5花匠贪心T6华容道广搜、剪枝NOIP2012提高组T1Vigenere密码枚举、模拟T2国王游戏贪心、高精度T3开车旅行平衡树、倍增T4同余方程扩展欧几里得T5借教室线段树T6疫情控制二分、倍增NOIP2011提高组T1铺地毯模拟T2选择客栈动态规划(高级)、RMQ T3Mayan游戏T4计算系数组合数学T5聪明的质监员二分T6观光公交贪心NOIP2010提高组T1机器翻译队列T2乌龟棋动态规划T3关押罪犯二分、并查集T4引水入城广搜、动态规划T3摆渡车动态规划(高级) T4对称二叉树二叉树NOIP2017普及组序号题名考查内容T1成绩顺序结构T2图书管理员结构体排序T3棋盘深搜、剪枝T4跳*房*子二分、动态规划NOIP2016普及组序号题名考查内容T1买铅笔一重循环T2回文日期回文T3海港大模拟、队列T4魔*法*阵枚举、前缀和NOIP2015普及组序号题名考查内容T1金*币一重循环T2扫*雷*游*戏二维数组T3求和组合数学T4推销员贪心、优先队列NOIP2014普及组序号题名考查内容T1珠心算测验模拟T2比例简化枚举、gcdT3螺旋矩阵模拟、找规律T4子矩阵动态规划(高级)NOIP2013普及组序号题名考查内容T1记数问题二重循环T2表达式求值栈T3小朋友的数字动态规划(高级) T4车站分级拓扑排序NOIP2012普及组序号题名考查内容T1质因数分解一重循环、质数T2寻*宝模拟、取模T3摆花背包、动态规划T4文化之旅最短路NOIP2011普及组序号题名考查内容T1数字反转进制转换T2统计单词数字符串T3瑞士轮归并排序T4表达式的值动态规划(高级)、栈NOIP2010普及组序号题名考查内容T1数字统计二维数组T2接水问题模拟T3导*弹*拦*截贪心T4三*国*游*戏贪心、博弈。

最新NOIP复赛普及组试题资料

最新NOIP复赛普及组试题资料

全国信息学奥林匹克联赛(NOIP2011)复赛普及组(请选手务必仔细阅读本页内容)一.题目概况二.提交源程序文件名三.编译命令(不包含任何优化开关)四.运行内存限制注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。

2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。

3、全国统一评测时采用的机器配置为:CPU P4 3.0GHz,内存1G,上述时限以此配置为准。

4、特别提醒:评测在NOI Linux 下进行。

1.数字反转(reverse.cpp/c/pas)【问题描述】给定一个整数,请将该数各个位上数字反转得到一个新数。

新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。

【输入】输入文件名为reverse.in。

输入共1 行,一个整数N。

【输出】输出文件名为reverse.out。

输出共1 行,一个整数,表示反转后的新数。

【输入输出样例1】【输入输出样例2】【数据范围】-1,000,000,000 ≤ N ≤ 1,000,000,000。

2.统计单词数(stat.cpp/c/pas)【问题描述】一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。

现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。

注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同(参见样例1),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例2)。

【输入】输入文件名为stat.in,2 行。

第1 行为一个字符串,其中只含字母,表示给定单词;第2 行为一个字符串,其中只可能包含字母和空格,表示给定的文章。

【输出】输出文件名为stat.out。

noip普及组复赛入门测试(答案+测试数据)

noip普及组复赛入门测试(答案+测试数据)

一、新龟兔赛跑(文件名xgtsp.pas)新龟兔赛跑比赛即将举行,此次龟兔赛跑比赛的规则与以往有所不同,不再考察兔子和乌龟谁在最短的时间内跑完规定的路程,而是考察谁在规定时间内跑的路程更长,且兔子和乌龟跑步都是匀速的。

由于兔子的坏习惯,它总喜欢把比赛的总时间T小时中的K小时拿来睡觉。

现在给你比赛的总时间T、兔子的睡觉时间K、兔子的速度U、乌龟的速度V,需要你求出该次比赛谁最后获胜。

输入第一行为一个整数X,表示有X组输入数据。

每组数据只有一行,包括4个数T、K、U、V (1 ≤ T≤ 300,0 ≤ K ≤ T,1 ≤ U ≤ 100,1 ≤ V ≤ 100)。

对于每组数据,输出只有一个数,如果兔子获胜则输出-1,如果乌龟获胜则输出1,如果同时到达则输出0。

允许输入一组数后立即输出对应的结果。

样例输入:21 12 16 2 6 3样例输出:1-1varv,u,t,k,n,i:integer;beginreadln(n);for i:=1 to n do beginreadln(t,k,u,v);if v*t>U*(t-k) then writeln(1);if v*t<U*(t-k) then writeln(-1);if v*t=U*(t-k) then writeln(0);end;end.1、输入:26 2 6 28 6 8 2输出:-12、输入:2300 280 60 20120 0 12 13输出:113、输入:3100 20 50 30100 50 45 25100 80 27 17输出:-1114、输入:3150 77 29 23127 11 22 13139 22 13 7输出:1-1-1二、小球路程(文件名:XQLC.PAS )已知小球从100米高度自由下落,落地后反弹起,又落地,又弹起,……。

每次弹起的高度都是上一次高度的一半。

求小球第N次反弹起的高度和球在整个过程所经过的路程(包括下落和反弹),用键盘输入N,输出反弹高度和经过路程,结果保留两位小数。

NOIP普及组复赛试题

NOIP普及组复赛试题

P1909 买铅笔题目描述P教师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物。

她发觉商店一共有3种包装的铅笔,不同包装内的铅笔数量有可能不同,价钱也有可能不同。

为了公平起见,P教师决定只买同一种包装的铅笔。

商店不许诺将铅笔的包装拆开,因此P教师可能需要购买超过n支铅笔才够给小朋友们发礼物。

此刻P教师想明白,在商店每种包装的数量都足够的情形下,要买够至少n支铅笔*最少*需要花费多少钱。

输入输出格式输入格式:输入的第一行包括一个正整数n,表示需要的铅笔数量。

接下来三行,每行用两个正整数描述一种包装的铅笔:其中第一个整数表示这种包装内铅笔的数量,第二个整数表示这种包装的价钱。

保证所有的7个数都是不超过10000的正整数。

输出格式:输出一行一个整数,表示P教师最少需要花费的钱。

输入输出样例输入样例#1:输出样例#1:输入样例#2:说明铅笔的三种包装别离是:•2支装,价钱为2;•50支装,价钱为30;•30支装,价钱为27。

P教师需要购买至少57支铅笔。

若是她选择购买第一种包装,那么她需要购买29份,共计2x29 = 58支,需要花费的钱为2x29 = 58。

事实上,P教师会选择购买第三种包装,如此需要买2份。

尽管最后买到的铅笔数量更多了,为30x2 = 60支,但花费却减少为27 x2 = 54,比第一种少。

关于第二种包装,尽管每支铅笔的价钱是最低的,但要够发必需买2份,实际的花费达到了30 x 2 = 60,因此P教师也可不能选择。

因此最后输出的答案是54。

【子任务】子任务会给出部份测试数据的特点。

若是你在解决题目中碰到了困难,能够尝试只解决一部份测试数据。

每一个测试点的数据规模及特点如下表:上表中“整倍数”的意义为:假设为“K”,表示对应数据所需要的铅笔数量n—定是每种包装铅笔数量的整倍数(这意味着必然能够不用多买铅笔)。

P2020 回文日期题目描述在日常生活中,通过年、月、日这三个要素能够表示出一个唯一确信的日期。

NOIP普及组初赛历年试题及标准答案选择题篇

NOIP普及组初赛历年试题及标准答案选择题篇

NOIP普及组初赛历年试题及答案选择题篇————————————————————————————————作者:————————————————————————————————日期:NOIP普及组初赛历年试题及答案选择题篇单项选择题:每次共20题,每题1.5分,共计30分。

每题有且仅有一个正确选项。

注:答案在文末一、计算机基础(每年8-10题,占选择题的一半,找份材料翻几遍就可拿分了)NOIP2011-3. 一片容量为8G的SD卡能储存大约( )张大小为2MB的数码照片。

A.1600B.2000C.4000D.16000NOIP2011-4. 摩尔定律(Moore'slaw)是由英特尔创始人之一戈登·摩尔(GordonMoor)提出来的。

根据摩尔定律,在过去几十年一级在可预测的未来纪念,单块集成电路的集成度大约每( )个月翻一番。

A.1B.6C.18D.36NOIP2011-6.寄存器是( )的重要组成部分。

A.硬盘B.高速缓存C.内存D.中央处理器(CPU)NOIP2011-10. 有人认为,在个人电脑送修前,将文件放入回收站中就是已经将其删除了。

这种想法是( )。

A .正确的,将文件放入回收站以为着彻底删除、无法恢复B.不正确的,只有将回收站清空后,才意味着彻底删除、无法恢复C.不正确的,即使回收站清空,文件只是被标记为删除,仍可能通过回复软件找回D.不正确的,只要在硬盘上出现过的文件,永远不可能被彻底删除NOIP2011-14. 生物特征识别,是利用人体本身的生物特征进行身份认证的一种技术。

目前,指纹识别、虹膜识别、人脸识别等技术已广泛应用于政府、银行、安全防卫等领域。

以下不属于生物特征识别技术及其应用的是( )。

NOIP2011-16. 关于汇编语言,下列说法错误的是( )。

A.是一种与具体硬件相关的程序设计语言B.在编写复杂程序时,相对于高级语言而言代码量较大,且不易调试C.可以直接访问寄存器、内存单元、以及I/O端口D.随着高级语言的诞生,如今已完全被淘汰,不再使用NOIP2011-18. 1956年( )授予肖克利、巴丁和布拉顿,以表彰他们对半导体的研究和晶体管效应的发现。

noip普及组复赛答案

noip普及组复赛答案

noip普及组复赛答案【篇一:noip普及组复赛入门测试(答案+测试数据)】class=txt>新龟兔赛跑比赛即将举行,此次龟兔赛跑比赛的规则与以往有所不同,不再考察兔子和乌龟谁在最短的时间内跑完规定的路程,而是考察谁在规定时间内跑的路程更长,且兔子和乌龟跑步都是匀速的。

由于兔子的坏习惯,它总喜欢把比赛的总时间t小时中的k小时拿来睡觉。

现在给你比赛的总时间t、兔子的睡觉时间k、兔子的速度u、乌龟的速度v,需要你求出该次比赛谁最后获胜。

输入第一行为一个整数x,表示有x组输入数据。

每组数据只有一行,包括4个数t、k、u、v (1 ≤ t≤ 300,0 ≤ k ≤ t,1 ≤ u ≤ 100,1 ≤ v ≤ 100)。

对于每组数据,输出只有一个数,如果兔子获胜则输出-1,如果乌龟获胜则输出1,如果同时到达则输出0。

允许输入一组数后立即输出对应的结果。

样例输入:21 12 16 2 6 3样例输出:1-1varv,u,t,k,n,i:integer;beginreadln(n);for i:=1 to n do beginreadln(t,k,u,v);if v*tu*(t-k) then writeln(1);if v*tu*(t-k) then writeln(-1);if v*t=u*(t-k) then writeln(0);end;end.1、输入:26 2 6 28 6 8 2输出:-12、输入:2300 280 60 20120 0 12 13输出:113、输入:3100 20 50 30100 50 45 25100 80 27 17输出:-1114、输入:3150 77 29 23127 11 22 13139 22 13 7输出:1-1-1二、小球路程(文件名:xqlc.pas )已知小球从100米高度自由下落,落地后反弹起,又落地,又弹起,??。

每次弹起的高度都是上一次高度的一半。

noip2008普及组复赛试题(附题解)

noip2008普及组复赛试题(附题解)

全国信息学奥林匹克联赛(NOIP2008)复赛普及组注意事项:1、文件名(程序名和输入输出文件名)必须使用小写。

2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。

3、全国统一评测时采用的机器配置为:CPU 1.9GHz,内存512M,上述时限以此配置为准。

各省在自测时可根据具体配置调整时限。

1.ISBN号码(isbn.pas/c/cpp)【问题描述】每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。

ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后一位为识别码。

识别码的计算方法如下:首位数字乘以1加上次位数字乘以2......以此类推,用所得的结果mod 11,所得的余数即为识别码,如果余数为10,则识别码为大写字母X。

例如ISBN号码0-670-82162-4中的识别码4是这样得到的:对067082162这9个数字,从左至右,分别乘以1,2, (9)再求和,即0×1+6×2+……+2×9=158,然后取158 mod 11的结果4作为识别码。

你的任务是编写程序判断输入的ISBN号码中识别码是否正确,如果正确,则仅输出“Right”;如果错误,则输出你认为是正确的ISBN号码。

【输入】输入文件isbn.in只有一行,是一个字符序列,表示一本书的ISBN号码(保证输入符合ISBN号码的格式要求)。

【输出】输出文件isbn.out共一行,假如输入的ISBN号码的识别码正确,那么输出“Right”,否则,按照规定的格式,输出正确的ISBN号码(包括分隔符“-”)。

noip普及组初赛模拟考试题[附答案解析]

noip普及组初赛模拟考试题[附答案解析]

选择一个正确答案代码(A/B/C/D),填入每题的括号内 (每题1.5分,多选无分, 共30 分)题号 1 2 3 4 5 6 7 8 9 10选择 C D C D D B B A B C题号 11 12 13 14 15 16 17 18 19 20选择 C D D A B C C D C B 二.问题求解(共2题,每题5分,共计10分)1. 当m=4,n=4时选法数=352. 共有多少种选法 1360二. 阅读程序,并写出程序的正确运行结果:(共4题,每题8分,共32分)1. 程序的运行结果是: 1262. 程序的运行结果是: 115 1123.程序的运行结果是:114. 程序的运行结果是: DCBA CDBA CBDA CBAD BDCA BCDA BCAD BADC BACDADCB ACDB ACBD ABDC ABCDNum=14四.根据题意, 将程序补充完整 (每空2.8分,共28分)1.①readln(d,i);②d-1③x*2+1④a[x]:=(4)true;2.①j<=trunc(sqrt(k))②L-1③a[v]<=m④inc(v)⑤s=2*L-1一、选择题:共20题,每题1.5分,共计30分1. 关于计算机语言,正确的说法是(C)。

A.BASIC语言是一种高级语言,每台计算机都必须配备B.汇编语言是一种比BASIC语言更高级的计算机语言C.机器语言是计算机可以直接识别的语言,但编程比较困难D.PASCAL语言是BASIC语言的更高版本2. 计算机接入网络后,它的功能会大大拓展,主要表现在( D )。

A.共享资源与分担负荷 B.数据通讯C.可以使用他人的资源 D.以上三项功能都有【分析与解答】计算机网络能够实现的功能是:数据通讯,资源共享,实现信息的分布式处理和提高计算机系统的可靠性与实用性。

故本题答案为D。

3. 若某数的原码为A7H,则其对应的补码为( C )。

NOIP竞赛模拟试题

NOIP竞赛模拟试题

NOIP2016普及组复赛模拟赛试卷普及组(请选手务必仔细阅读本页内容)二.提交源程序文件名三.编译命令(不包含任何优化开关)注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。

2、C/C++中函数 main()的返回值类型必须是 int,程序正常结束时的返回值必须是 0。

3、统一评测时采用的机器配置为:CPU P4 3.0GHz,内存 2G,上述时限以此配置为准。

4、特别提醒:评测在Windows下进行,评测软件为cena8.0。

River Hopscotch(jump.pas/c/cpp)【问题描述】每年,奶牛们都举办一种特殊的跳房子游戏,在这个游戏中,大家小心翼翼地在河中的岩石上跳。

这个游戏在一条笔直的河中进行,以一块岩石表示开始,以另一块距离起点L单位长度的岩石表示结束。

在这两块岩石中间还有N 块岩石,每块的位置距离起点是 Di 个单位长度。

玩这个游戏的时候,每头牛从开始的那块岩石想办法要跳到表示结束的那块岩石上。

中间只能在从某块岩石跳跃到另一块岩石,反复的这样跳。

当然,不够敏捷的牛永远跳不到终点,最终只能落入河中。

农民 John 为他的牛感到自豪,每年都观看比赛。

随着时间的推移,他对于那些胆小的只能跳过很短距离的牛感到厌烦。

为了那些牛,其他农民会把岩石的间距弄得很小。

他计划移除一些岩石,从而增加奶牛在跳跃时需要的最短距离。

他不能移除开始和结束的两块岩石。

但是除此之外他可以移除 M 块岩石。

FJ 希望知道他能够增加多少最短跳跃距离。

求当他移除了M块岩石后,奶牛从开始跳到结束的岩石,每次跳跃的最短距离至多可以增加到多少。

【输入格式】第1行: 三个用空格分开的整数,分别是 L, N 和 M。

第2..N+1行: 每行一个整数,表示中间N块岩石的位置,没有两块岩石处于同一位置。

【输出格式】输出共一行一个整数,表示移除某M块岩石后,相邻岩石间距最小值的最大可能情况。

【输入样例】25 5 2214112117【输出样例】4【输入说明】中间有 5 块岩石,坐标 2, 11, 14, 17 和 21。

noip复赛普及组试题

noip复赛普及组试题

CCF 全国信息学奥林匹克联赛(NOIP2015)复赛普及组(请选手务必仔细阅读本页内容)一.题目概况1、文件名(程序名和输入输出文件名)必须使用英文小写。

2、C/C++中函数 main()的返回值类型必须是 int,程序正常结束时的返回值必须是 0。

3、全国统一评测时采用的机器配置为:CPU AMD Athlon(tm) II x2 240 processor,,内存4G,上述时限以此配置为准。

4、只提供 Linux 格式附加样例文件。

5、特别提醒:评测在当前最新公布的NOI Linux 下进行,各语言的编译器版本以其为准。

1. 金币c/pas)国王将金币作为工资,发放给忠诚的骑士。

第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续 N 天每天收到 N 枚金币后,骑士会在之后的连续 N+1 天里,每天收到 N+1 枚金币。

请计算在前 K 天里,骑士一共获得了多少金币。

【输入格式】输入文件名为。

输入文件只有 1 行,包含一个正整数 K,表示发放金币的天数。

【输出格式】输出文件名为。

输出文件只有 1 行,包含一个正整数,即骑士收到的金币数。

【输入输出样例 1】【输入输出样例 1 说明】骑士第一天收到一枚金币;第二天和第三天,每天收到两枚金币;第四、五、六天,每天收到三枚金币。

因此一共收到 1+2+2+3+3+3=14 枚金币。

【输入输出样例 2】【数据说明】对于 100%的数据,1 ≤ K ≤ 10,000。

2.扫雷游戏(c/pas)扫雷游戏是一款十分经典的单机小游戏。

在 n 行 m 列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。

玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格。

noip复赛模拟试题

noip复赛模拟试题

noip复赛模拟试题第一题:最大字符(zdzf.c/cpp)读入一串由大写、小写、数字组成的字符(<256位),输出ASCII 表值最大的那个字符出来。

例如:读入:abeADEf3输出:e第二题:盖房子(gfz.c/cpp)题目正文【问题描述】永恒の灵魂最近得到了面积为n*m的一大块土地(高兴ING^_^),他想在这块土地上建造一所房子,这个房子必须是正方形的。

但是,这块土地并非十全十美,上面有很多不平坦的地方(也可以叫瑕疵)。

这些瑕疵十分恶心,以至于根本不能在上面盖一砖一瓦。

他希望找到一块最大的正方形无瑕疵土地来盖房子。

【输入格式】输入文件第一行为两个整数n,m(1<=n,m<=1000),接下来n 行,每行m个数字,用空格隔开。

0表示该块土地有瑕疵,1表示该块土地完好。

【输出格式】一个整数,最大正方形的边长。

【输入样例】4 40 1 1 11 1 1 00 1 1 01 1 0 12第三题:IQ(iq.c/cpp)题目正文【问题描述】根据世界某权威学会的一项调查,学信息学的学生IQ非常高。

举个最好的例子,如果我们把学信息学的一些学生调去学数学,那么两个竞赛的学生平均IQ都会提升!!现在给出一群数学竞赛全体学生的IQ和信息学竞赛全体学生IQ,问最多能把几个学信息学的学生调去学数学,而两个竞赛的学生平均IQ都有提升呢?每次只调一个学生,而且每次调配,两个竞赛的学生平均IQ都要提升。

【输入格式】输入数据的第一行一个正整数N,代表数学竞赛班学生的数目。

N <= 100接下来一行,有N个正整数,代表每个数学学生的IQ(1 到 200 之间)。

然后一个整数M,代表信息学竞赛班学生数目 M <= 100接下来一行,有M一个正整数,代表每个信息学竞赛班学生的IQ (1 到 200 之间)输入数据保证信息学学生平均IQ高于数学学生。

输出格式:输出只有一行,一个正整数,代表能从信息学调去学数学的学生的个数。

NOIP2006普及组复赛试题(附题解)

NOIP2006普及组复赛试题(附题解)

NOIP2006普及组解题报告Kyd Dong 1.明明的随机数(random.pas/c/cpp)【问题描述】明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。

然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。

请你协助明明完成“去重”与“排序”的工作。

【输入文件】输入文件random.in 有2行,第1行为1个正整数,表示所生成的随机数的个数:N第2行有N个用空格隔开的正整数,为所产生的随机数。

【输出文件】输出文件random.out 也是2行,第1行为1个正整数M,表示不相同的随机数的个数。

第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。

【输入样例】1020 40 32 67 40 20 89 300 400 15【输出样例】815 20 32 40 67 89 300 400【试题分析】简单的映射排序,用一个数组s[1..n]用一个数组a[1..1000]来储存状况,先清空数组为0,在读入s[i]之后,先判断a[s[i]]是否为1,是则再读下一个数据,不是则把a[s[i]]赋值为1,m←m+1。

在输出时,则先输出m,再用一个循环输出各个值,即用如下伪代码:For i←1 to 1000 do{If a[i]=1Then 打印i;}当然还有许多不同的方法,这里只给出代码,供读者自己研究。

【程序代码】1.program random; {映射排序}varp:array [1..1000] of shortint; {当前数已有标记1} n,l:shortint;a,max,i:integer;input,output:text;beginassign(input,'random.in');assign(output,'random.out');reset(input);readln(input,n);fillchar(p,sizeof(p),0);max:=-1;l:=0; {max:存最大数, l:不同数字的个数}for i:=1 to n dobeginread(input,a);if p[a]=0 then begin p[a]:=1;l:=l+1 end; {当前数未重复,则标记并记数}if a>max then max:=a;end;rewrite(output);writeln(output,l);for i:=1 to max doif p[i]=1 then write(output,i,' ');close(input);close(output);end2.program random; { 插入排序}var p:array [1..1000] of boolean;a:array [1..100] of integer;i,n,j,g:integer;input,output:text;procedure swap(var a,b:integer);var c:integer;beginc:=a;a:=b;b:=c;end;beginassign(input,'random.in');assign(output,'random.out');reset(input);readln(input,n);fillchar(p,sizeof(p),false);g:=2;read(input,a[1]);p[a[1]]:=true;for i:=2 to n dobeginread(input,a[g]);if p[a[g]]=falsethenbeginp[a[g]]:=true; {当前数已有标记}j:=g; {插入排序}while j>1 dobeginif a[j]<a[j-1] then swap(a[j-1],a[j]); j:=j-1;end;g:=g+1;end;end;rewrite(output);writeln(output,g-1);for i:=1 to g-1 do write(output,a[i],' ');close(output);close(input);end.3.program random; { 插入排序}var a:array [1..100] of integer;i,j,k,l,n,g:integer;input,output:text;beginassign(input,'random.in');assign(output,'random.out');reset(input);readln(input,n);g:=1;read(input,a[1]);for i:=2 to n dobeginread(input,k);j:=1;while (k>a[j]) and (j<=g) do j:=j+1; {找插入位置} if k<a[j] then {中间插入} beging:=g+1;for l:=g downto j+1 do a[l]:=a[l-1];a[j]:=k;end;if j>g then begin g:=g+1;a[g]:=k end; {最后插入} end;rewrite(output);writeln(output,g);for i:=1 to g-1 do write(output,a[i],' ');writeln(output,a[g]);close(output);close(input);end.4.program random; { 链表插入排序}typelink=^node;node=recorddata:integer;next:link;end;var h,t,r,s:link;i,g,n,k:integer;input,output:text;beginassign(input,'random.in');assign(output,'random.out');reset(input);readln(input,n);g:=1;new(t);read(input,t^.data);t^.next:=nil;h:=t; {用第一个数建立链首指针}for i:=2 to n do {插入其余的数}beginread(input,k);if k<h^.data thenbegin new(t);t^.data:=k;t^.next:=h;h:=t;g:=g+1 end{链首插入}elsebeginr:=h;while (k>r^.data) and (r^.next<>nil) do begins:=r;r:=r^.next end; {在链中查找插入位置}if k<r^.data thenbeginnew(t);t^.data:=k;s^.next:=t;t^.next:=r;g:=g+1 end {处理在链中插入}else if (k<>r^.data) and (r^.next=nil) thenbeginnew(t);t^.data:=k;r^.next:=t;t^.next:=nil;g:=g+1 end {处理在链尾插入}end;end;rewrite(output);writeln(output,g);repeatwrite(output,r^.data,' ');r:=r^.next;until r=nil;close(output);close(input);end.5.program random; { 树排序}var a:array [1..100,1..3] of integer;i,n,g:integer;input,output:text;procedure px(s:integer); {建树,s:树中当前结点,i:待插入点}beginif a[i,2]<a[s,2] then if a[s,1]=0 then begin a[s,1]:=i;g:=g+1 end {插入左子树}else begin s:=a[s,1];px(s) end;if a[i,2]>a[s,2] then if a[s,3]=0 then begin a[s,3]:=i;g:=g+1 end {插入右子树}else begin s:=a[s,3];px(s) end;end;procedure print(s:integer); {中序遍历}beginif a[s,1]<>0 then print(a[s,1]); {左子树不空,则递归} write(output,a[s,2],' '); {输出当前父结点}if a[s,3]<>0 then print(a[s,3]); {右子树不空,则递归} end;beginassign(input,'random.in');assign(output,'random.out');reset(input);readln(input,n);fillchar(a,sizeof(a),0);read(input,a[g,2]);for i:=2 to n do begin read(input,a[i,2]);px(1) end; {建排序二叉树}rewrite(output);writeln(output,g);print(1);close(output);close(input);end.2.开心的金明(happy.pas/c/cpp)【问题描述】金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。

NOIP1996普及组(复赛)

NOIP1996普及组(复赛)

第二届全国青少年信息学(计算机)奥林匹克分区联赛复赛试题(初中组 竞赛用时:3小时)1.编制一个乘法运算的程序(20分)从键盘读入2个100以内的正整数,进行乘法运算并以竖式输出。

例如,输入格式:8913 又如,输入格式:16 8输出格式: 89 输出格式: 16 × 13 × 8 267 128 8911572.输入三个自然数N ,i ,j (1<=i<=N ,1<=j<=N ),输出在一个N*N 格的棋盘中,与格子(i ,j )同行、同列、同一对角线的所有格子的位置。

(20分)如:n=4,i=2,j=3表示了棋盘中的第二行第三列的格子,如下图:当n=4,i=2,j=3时,输出的结果是:(2,1) (2,2) (2,3) (2,4) {同一行上格子的位置}(1,3) (2,3) (3,3) (4,3) {同列列上格子的位置}(1,2) (2,3) (3,4) {左上到右下对角线上的格子的位置} (4,1) (3,2) (2,3) (1,4) {左下到右上对角线上的格子的位置}3.字符串编辑(30分)从键盘输入一个字符串(长度<=40个字符),并以字符 ’.’ 结束。

例如:’This is a book.’ 现对该字符串进行编辑,编辑功能有:D :删除一个字符,命令的方式为:D a 其中a 为被删除的字符例如:D s表示删除字符 ’s’ ,若字符串中有多个 ‘s’,则删除第一次出现的。

如上例中删除的结果为: ‘Thi is a book.’I :插入一个字符,命令的格式为:I a1 a2 其中a1表示插入到指定字符前面,a2表示将要插入的字符。

例如:I s d 表示在指定字符 ’s’ 的前面插入字符 ‘d’ ,若原串中有多个 ‘s’ ,则插入在最后一个字符的前面,如上例中:原串:’This is a book.’插入后:’This ids a book.’R:替换一个字符,命令格式为:R a1 a2 其中a1为被替换的字符,a2为替换的字符,若在原串中有多个a1则应全部替换。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.数字反转(reverse.cpp/c/pas)【问题描述】给定一个整数,请将该数各个位上数字反转得到一个新数。

新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。

【输入】输入文件名为reverse.in。

输入共 1 行,一个整数N。

【输出】输出文件名为reverse.out。

输出共 1 行,一个整数,表示反转后的新数。

【输入输出样例1】reverse.in reverse.out123 321【输入输出样例2】Reverse.in reverse.out-380 -83【数据范围】-1,000,000,000 ≤N≤1,000,000,000。

vars3,s1,s2:string;n,i:integer;beginassign(input,'reverse.in');reset(input);assign(output,'reverse.out');rewrite(output);read(s1);n:=length(s1);if s1[1]='-' thenbegins2:='-';for i:=1 to n-1 dos1[i]:=s1[i+1];delete(s1,n,1);end;n:=length(s1);for i:=1 to n dos3:=s3+s1[n-i+1];i:=1;while(s3[i]='0')and(length(s3)>1) do delete(s3,1,1);write(s2+s3);close(input);close(output);end.2.统计单词数(stat.cpp/c/pas)【问题描述】一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。

现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。

注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同(参见样例1),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例2)。

【输入】输入文件名为stat.in,2 行。

第 1 行为一个字符串,其中只含字母,表示给定单词;第 2 行为一个字符串,其中只可能包含字母和空格,表示给定的文章。

【输出】输出文件名为stat.out。

只有一行,如果在文章中找到给定单词则输出两个整数,两个整数之间用一个空格隔开,分别是单词在文章中出现的次数和第一次出现的位置(即在文章中第一次出现时,单词首字母在文章中的位置,位置从0 开始);如果单词在文章中没有出现,则直接输出一个整数-1。

【输入输出样例1】stat.in stat.outToto be or not to be is a question2 0【输入输出样例 1 说明】输出结果表示给定的单词To 在文章中出现两次,第一次出现的位置为0。

【输入输出样例2】stat.in stat.outtoDid the Ottoman Empire lose its power at that time-1【输入输出样例 2 说明】表示给定的单词to 在文章中没有出现,输出整数-1。

【数据范围】1 ≤单词长度≤10。

1 ≤文章长度≤1,000,000第二题有个陷阱,如果纯粹用字符串的7个操作命令,由于字串很长,后面几个点肯定超时。

第二行的长串可以用字符一个个读。

遇到空格跟上一行的串进行比较。

这样能保证在规定时间内不超时。

var s1,s2:string; ch:char;s,first,n,i,ans:longint;begin assign(input,'stat.in');reset(input);assign(output,'stat.out');rewrite(output);readln(s1); s1:=upcase(s1);first:=-1; n:=length(s1);while not eoln dobegins2:=''; repeatinc(s); read(ch); ch:=upcase(ch);if ch<>' 'then s2:=s2+ch;until (ch=' ')or eoln;if s2=s1 thenif first=-1 thenbeginfirst:=s-n-1;inc(ans);end elseinc(ans);end;if first=-1 then write(-1) else write(ans,' ',first);close(input);close(output);end.3.数字统计(two.pas/c/cpp) 【问题描述】请统计某个给定范围[L, R]的所有整数中,数字2 出现的次数。

比如给定范围[2, 22],数字 2 在数2中出现了1次,在数12中出现 1 次,在数20 中出现 1 次,在数21 中出现1 次,在数22 中出现2 次,所以数字2 在该范围内一共出现了6次。

【输入】输入文件名为two.in。

输入共1 行,为两个正整数L 和R,之间用一个空格隔开。

【输出】输出文件名为two.out。

输出共1 行,表示数字 2 出现的次数。

Two.out【输入输出样例1】two.in2 22 6【输入输出样例2】two.outtwo.in2 100 20【数据范围】 1 ≤L ≤R≤10000。

var a,b,c,d,e,f:integer;beginassign(input,'two.in');reset(input);assign(output,'two.out');rewrite(output);readln(a,b);f:=0;d:=0;for c:=a to b dobegine:=c;repeatd:=e mod 10;e:=e div 10;if d=2 then inc(f);until e=0;end;writeln(f);close(input);close(output);end.输入2 100 输出 20 输入 1 1000 输出 300输入 2222 2223 输出 7 输入 9993 10000 输出 04. 接水问题(water.pas/c/cpp)【问题描述】学校里有一个水房,水房里一共装有m 个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为1。

现在有n 名同学准备接水,他们的初始接水顺序已经确定。

将这些同学按接水顺序从1到n 编号,i号同学的接水量为wi。

接水开始时,1 到m号同学各占一个水龙头,并同时打开水龙头接水。

当其中某名同学j 完成其接水量要求wj 后,下一名排队等候接水的同学k马上接替j 同学的位置开始接水。

这个换人的过程是瞬间完成的,且没有任何水的浪费。

即j 同学第x 秒结束时完成接水,则k 同学第x+1 秒立刻开始接水。

若当前接水人数n’不足m,则只有n’个龙头供水,其它m−n’个龙头关闭。

现在给出n名同学的接水量,按照上述接水规则,问所有同学都接完水需要多少秒。

【输入】输入文件名为water.in。

第1 行2 个整数n 和m,用一个空格隔开,分别表示接水人数和龙头个数。

第2 行n 个整数w1、w2、……、wn,每两个整数之间用一个空格隔开,wi表示i 号同学的接水量。

【输出】输出文件名为water.out。

输出只有一行,1 个整数,表示接水所需的总时间。

water.out【输入输出样例1】water.in5 344 4 1 2 1【输入输出样例1解释】第1 秒,3 人接水。

第1秒结束时,1、2、3 号同学每人的已接水量为1,3 号同学接完水,4 号同学接替 3 号同学开始接水。

第2 秒,3 人接水。

第 2 秒结束时,1、2 号同学每人的已接水量为2,4 号同学的已接水量为1。

第3 秒,3 人接水。

第 3 秒结束时,1、2 号同学每人的已接水量为3,4 号同学的已接水量为2。

4号同学接完水,5 号同学接替 4 号同学开始接水。

第4 秒,3 人接水。

第 4 秒结束时,1、2 号同学每人的已接水量为4,5 号同学的已接水量为1。

1、2、5 号同学接完水,即所有人完成接水。

总接水时间为 4 秒。

【输入输出样例2】water.in water.out1638 423 71 87 32 70 93 8076【数据范围】1 ≤n ≤10000,1 ≤m≤100 且m≤n;1 ≤wi ≤100。

var a:array[1..101]of integer;b:array[1..10001]of integer;c,d,e,f,g:integer;h:longint;tf:boolean;beginassign(input,'water.in');reset(input);assign(output,'water.out');rewrite(output);fillchar(b,sizeof(b),0);fillchar(a,sizeof(a),0);readln(c,d);for e:=1 to c doread(b[e]);for e:=1 to d doa[e]:=b[e];f:=d; h:=0;repeattf:=true;inc(h);for g:=1 to d dobeginif a[g]>0 then dec(a[g]);while (a[g]=0)and(f<c) do begin inc(f);a[g]:=b[f];end;if a[g]>0 then tf:=false;end;until tf=true;writeln(h);close(input);close(output);end.或constinf='water.in';ouf='water.out';varn,m,i,j,k,tot,min,max:longint;a:array[1..10000] of longint;b:array[1..100] of longint;beginassign(input,inf);reset(input);assign(output,ouf);rewrite(output);readln(n,m);for i:=1 to n do a[i]:=0;for i:=1 to n do read(a[i]);for i:=1 to m do b[i]:=a[i];min:=maxlongint; max:=-maxlongint;if n=m then//如果水管数和人数相等,那么直接输出节水量的最大值就行了 beginfor i:=1 to m doif b[i]>max then max:=b[i];writeln(max);close(input);close(output);halt;end;for i:=m+1 to n dobeginmin:=maxlongint;for j:=1 to m doif b[j]<min thenbeginmin:=b[j];k:=j;//找接水量最小的水管,并记录该水管的位置end;b[k]:=b[k]+a[i];//该水管的接水量+下一个人的接水量end;max:=-maxlongint;for i:=1 to m doif b[i]>max then max:=b[i];//搜一遍,找接水量的最大值writeln(max);close(input);close(output);end.输入10 44 37 71 16 28 34 28 87 39 43 输出 124输入100 2076 26 67 21 73 19 66 23 46 57 63 8 58 65 94 65 96 1 98 52 92 36 28 7 67 94 92 76 85 38 54 88 28 33 33 55 4 94 66 28 69 86 67 98 36 14 94 27 41 59 79 96 96 29 100 52 11 27 60 87 56 54 66 38 52 87 100 82 46 70 52 34 52 65 78 74 35 94 29 84 77 40 86 19 24 79 42 6 32 53 44 85 61 31 99 64 74 61 81 81 输出 331模拟法Var a:array[1..10000] of integer;N,mI,j,k:longint;BeginAssign(input,’water.in’);reset(input);Assign(output,’water.out’);rewrite(output);Readln(n,m);For i:=1 to n doRead(a[i]);For i:=m+1 to n doBeginK:=1;For j:=1 to m doIf a[j]<a[k] then k:=j;Inc(a[k],a[i]);End;K:=1;For i:=1 to m doIf a[i]>a[k] then k:=I;Writeln(a[k]);Close(input);Close(output);End.。

相关文档
最新文档