noip2014普及组复赛试题

“noip2014普及组复赛试题”相关的资料有哪些?“noip2014普及组复赛试题”相关的范文有哪些?怎么写?下面是小编为您精心整理的“noip2014普及组复赛试题”相关范文大全或资料大全,欢迎大家分享。

NOIP2014普及组复赛 螺旋矩阵

标签:文库时间:2024-10-06
【bwwdw.com - 博文网】

NOIP2014普及组复赛试题解答

3. 螺旋矩阵 【问题描述】

一个n 行n列的螺旋矩阵可由如下方法生成:

从矩阵的左上角(第1行第1列)出发,初始时向右移动:如果前方是未曾经过的格子,则继续前进,否则右转;重复上述操作直至经过矩阵中所有格子。根据经过顺序,在格子中依次填入1,2,3,…,n2,便构成了一个螺旋矩阵。

现给出矩阵大小n以及i和j,请你求出该矩阵中第i行第j列的数是多少。 【分析】

这是个蛇形填数问题。 如果采用先枚举二维数组再找对应的元素方法,由于1 ≤ n ≤ 30,000,需要建立一个 30,000× 30,000的二维数组,结果会发生数据溢出且超出运行内存上限(128M)。

我们可以采用类似贪吃蛇的方法,让它在N×N个方格内自外向内逐格移动,控制其向右转的方向,并计算其长度。

解法一

#include using namespace std; bool pd(int,int) ; int i,j; bool p; int main() {

int n,x,y,u,d,l,r,tot=0; // U为上边界,D为下边界 ,L为左边界,R为右边界;

freopen(\freopen(\scanf(\

d=n;r

NOIP2014复赛普及组第一题题解

标签:文库时间:2024-10-06
【bwwdw.com - 博文网】

活动园地

NOIP2014复赛普及组第一题题解

原题

一、 题目简化:求N个正数中有多少个数是这些数中其它两个数的和。

3<=N<=100; 每个正整数M:1<=M<=10000;

二、 过程分析:试题显然可以分成三个步骤求解:1、先求出N个数中每两个数的

和;2、判断这些和中有没有重复,重复的数只留下一个;3、N个数中的每一个数都与这些和比较,若相等些记下,比较完成,即得其解。

三、 算法与策略:三个步骤都采用一一列举所有可能的方法,是典型的枚举。 四、 程序设计思路:1、一维数组A存放N个数,一维数组B存放两两相加的和;

求和、判断重复、比较两数是否相等,都采用两重循环,i 控制外循环,j 控制内循环,k表示数组B的下标变化,ans表示题目答案。

数组a最多100个元素,考虑到用循环,为防止下标越界,可适当把数组开大一些,a[0..101];数组b中元素数是N个数两个数两两相加的和的个数,由于N最大是100,所以和的个数最多是1+2+3+……99=4950个,则b[0..5000] 五、程序设计: program count; var

a:array[0..101] of longint; b:array[0..5000] of longint; n,ans,i,j

NOIP2014复赛提高组模拟试题

标签:文库时间:2024-10-06
【bwwdw.com - 博文网】

CCF 全国信息学奥林匹克联赛(NOIP2014)复赛 day1

CCF 全国信息学奥林匹克联赛(NOIP2014)复赛

提高组 day1

(请选手务必仔细阅读本页内容)

一、题目概况 中文题目名称 英文题目与子目录名 可执行文件名 输入文件名 输出文件名 每个测试点时限 测试点数目 每个测试点分值 附加样例文件 结果比较方式 题目类型 运行内存上限

二、提交源程序文件名 对于c++语言 对于c语言 对于pascal语言

三、编译命令(不包含优化开关)

对于c++语言 对于c语言 对于pascal语言

注意事项:

1、文件名(程序名和输入输出文件名)必须使用英文小写。

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

3、全国统一评测时采用的机器配置为:CPU AMD Athlon(tm) 64x2 Dual Core CPU 5200+, 2.71GHz,内存 2G,上述时限以此配置为准。 4、只提供 Linux 格式附加样例文件。

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

6、为了方便评测请以自己名字的拼音为文件夹

NOIP2014初赛普及组试题_C++

标签:文库时间:2024-10-06
【bwwdw.com - 博文网】

NOIP2014初赛普及组试题

第二十届全国青少年信息学奥林匹克联赛初赛

普及组C++语言试题

一、快单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项)

⒈以下哪个是面向对象的高级语言( )。

A.汇编语言 B.C++ C.Fortran D.Basic

⒉1TB代表的字节数是( )。

A.2的10次方 B.2的20次方 C.2的30次方 D.2的40次方

⒊二进制数00100100和00010101的和是( )。

A.00101000 B.001010100 C.01000101 D.00111001

⒋以下哪一种设备属于输出设备( )。

A.扫描仪 B.键盘 C.鼠标 D.打印机

⒌下列对操作系统功能的描述最为完整的是( )。

A.负责外设与主机之间的信息交换 B.负责诊断机器的故障

C.控制和管理计算机系统的各种硬件和软件资源的使用 D.将没有程序编译成目标程序

⒍CPU、存储器、I/O设备是通过( )连接起来的。

A.接口 B.总线 C.控制线 D.系统文件

⒎断电后会丢失数据的存储器是( )。

A.RAM B.ROM C.硬盘 D.光盘

NOIP2014初赛普及组试题_C++

标签:文库时间:2024-10-06
【bwwdw.com - 博文网】

NOIP2014初赛普及组试题

第二十届全国青少年信息学奥林匹克联赛初赛

普及组C++语言试题

一、快单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项)

⒈以下哪个是面向对象的高级语言( )。

A.汇编语言 B.C++ C.Fortran D.Basic

⒉1TB代表的字节数是( )。

A.2的10次方 B.2的20次方 C.2的30次方 D.2的40次方

⒊二进制数00100100和00010101的和是( )。

A.00101000 B.001010100 C.01000101 D.00111001

⒋以下哪一种设备属于输出设备( )。

A.扫描仪 B.键盘 C.鼠标 D.打印机

⒌下列对操作系统功能的描述最为完整的是( )。

A.负责外设与主机之间的信息交换 B.负责诊断机器的故障

C.控制和管理计算机系统的各种硬件和软件资源的使用 D.将没有程序编译成目标程序

⒍CPU、存储器、I/O设备是通过( )连接起来的。

A.接口 B.总线 C.控制线 D.系统文件

⒎断电后会丢失数据的存储器是( )。

A.RAM B.ROM C.硬盘 D.光盘

noip普及组复赛模拟试题22

标签:文库时间:2024-10-06
【bwwdw.com - 博文网】

1. 军方截获的信息由n(n<=30000)个数字组成,因为是敌国的高端秘密,所以一时不能破获。最原始的想法就是对这n个数进行小到大排序,每个数都对应一个序号,然后对第i个是什么数感兴趣,现在要求编程完成。 【输入格式】

第一行n,接着是n个截获的数字,接着一行是数字k,接着是k行要输出数的序号。

【输出格式】

k行序号对应的数字。 【输入样例】Secret.in 5

121 1 126 123 7 3 2 4 3

【输出样例】Secret.out 7 123 121

2. 有一只坏的里程表:它总是跳过数字3和数字8。也就是说,当前显示已走过两公里时,如果车子再向前走一公里,那么将显示4公里,而不是三公里(数字3跳过了)。再比如,当前是15229公里,车子再向前走一公里,显示的是15240公里,而不是15230公里。数字8也同样跳过

现在,给你里程表上显示的数字,请你告诉我车子真正走了多少公里。 输入: 15 输出: 12

3. 硬币游戏:Farmer John的奶牛喜欢玩硬币游戏,因此FJ发明了一种称为“Xoinc”的两人硬币游戏。

初始时,一个有N(5 <= N <= 2,000)枚硬币的堆栈放在地上,从堆顶数起的第I枚硬币的币值为C_i (1 <= C_i <= 100,000)。 开始玩游戏时,第一个玩家可以从堆顶拿走一枚或两枚硬币。如果第一个玩家只拿走堆顶的一枚硬币,那么第二个玩家可以拿走随后的一枚或两枚硬币。如果第一个玩家拿走两枚硬币,则第二个玩家可以拿走1,2,3,或4枚硬币。在每一轮中,当前的玩家至少拿走一枚硬币,至多拿走对手上一次所拿硬币数量的两倍。当没有硬币可拿时,游戏结束。

两个玩家都希望拿到最多钱数的硬币。请问,当游戏结束时,第一个玩家最多能拿多少钱呢? Input

第1行:1个整数N

第2..N+1行:第i+1行包含1个整数C_i Output

第1行:1个整数表示第1个玩家能拿走的最大钱数。

Sample In

noip普及组复赛模拟试题35

标签:文库时间:2024-10-06
【bwwdw.com - 博文网】

1农场主的篱笆:农场主有100块1米的正方形篱笆,他想用这些篱

笆搭一个一面靠墙的长方形圈,想使圈的面积最大应如何搭建?请你邦他编程解决。

2对输入的一句子实现查找且置换的功能。如输入This is a book!↙is(查找的内容) ↙IS(替换的内容),则输出ThIS IS a book!.

3. 输入一个'.' 结束的字串,从左至右翻译。若下一字符是数字n(0≤n≤9),表

示后一字符重复n+1次,不论后一字符是否是数字;若下一字符是非数字字符,则表示自己。翻译后以三个字符为1组输出,组与组之间用空格分开。如输入A2B5E34G,则输出ABB BEE EEE E44 44G。

4.求全排列:生成从1到n(n<10)的n个数的全部可能的排列(不一定按升序输出)。例如,输入3,则应该输出(每行输出5个排列): 123 132 213 231 321 312

5.公园门票每张5角,如果有2n个人排队购票,每人一张,并且其中一半人恰有5角钱,另一半人恰有1元钱,而票房无零钱可找,那么有多少种方法将这2n个人排成一列,顺次购票,使得不至于因票房无零钱可找而耽误时间? 如输入 3 则输出 000111 001011 001101 010011 010101

6.【问题描述

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

标签:文库时间:2024-10-06
【bwwdw.com - 博文网】

陶陶很喜欢数学 ,尤其喜欢奇怪的数。一天,他突然发现,有的整数拥有的因子数是很有个性的,决定找到一个具有n个正因子数的最小的正整数。

例如:n=4,则m=6,因为6有4个不同正整数因子1,2,3,6;而且是最小的有4个因子的整数。 【输入文件】

仅一个数 n(1≤n≤60) 【输出文件】 仅一个数 m 【样例输入】 4

【样例输出】 6

var flag:boolean;x,t,n,i:longint; begin readln(n); x:=0;flag:=false; while not flag do begin x:=x+1;t:=0; for i:=1 to x do

if x mod i=0 then t:=t+1; if t=n then flag:=true; end;

writeln(x); end.

输入 12 输出 60 输入30 输出 720 输入 60 输出 5040 输入 45 输出 3600

2. 由文件给出n个1~30000的无序数正整数,其中1≤N≤10000,同一个正整数可能会出现多次,出现次数最多的整数称为众数,找出其中的众数及它出现的次数。输入格式:输入文件masses.in 第

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

标签:文库时间:2024-10-06
【bwwdw.com - 博文网】

1.数字反转(reverse.cpp/c/pas)【问题描述】给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。【输入】输入文件名为 reverse.in。 输入共 1 行,一个整数N。

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

输出共 1 行,一个整数,表示反转后的新数。 【输入输出样例 1】reverse.in reverse.out 123 321

【输入输出样例 2】Reverse.in reverse.out -380 -83

【数据范围】-1,000,000,000 ≤ N≤ 1,000,000,000。

var

s3,s1,s2:string; n,i:integer; begin

assign(input,'reverse.in');reset(input);

assign(output,'reverse.out');rewrite(output); read(s1);

n:=length(s1); if s1[1]='-' then begin s2:='-';

f

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

标签:文库时间:2024-10-06
【bwwdw.com - 博文网】

小华的寒假作业上,有这样一个趣味填空题:

给出用等号连接的两个整数,如“1234=127”。当然,现在这个等号是不成立的。题目让你在左边的整数中间某个位置插入一个加号,看有没有可能让等号成立。以上面的式子为例,如果写成123+4=127,这就可以了。 请你编写一个程序来解决它。

Input 只有那个不相等的式子。已知,等号两边的整数都不会超过200000000000。

Output 如果存在这样的方案,请输出那个正确的式子。如果不存在解决方案,请输出“Impossible!”(引号中的部分)。 Sample Input 1234=127 Sample Output 123+4=127 program ex1075;

var i,len,p:integer; a1,a2,b:longint;

st,st1,st2,st3:string; begin

readln(st); p:=pos('=',st);

st1:=copy(st,1,p-1); delete(st,1,p); val(st,b,x);

len:=length(st1); for i:=1 to len-1 do beg