信息学奥林匹克冬令营2012 WC2012 试题

合集下载

2012年义乌市小学信息学奥林匹克竞赛试题(附答案)

2012年义乌市小学信息学奥林匹克竞赛试题(附答案)

2012年义乌市小学信息学奥林匹克竞赛试题(小学组 pascal语言二小时完成)姓名:一、单选(每题1.5分共30分)1、与十进制数29等值的二进制数是(A )A. 11101 B.11001 C.10111 D.110112、右图是一张黑白两色位图,假如使用0表示白色,1表示黑色那么这幅黑白两色位置对应的二进制编码为(B )A.0100011 B.1011100 C.1000011 D.01000013、上题中的黑白两色位置如果要在计算机内部完整地保存,在不进行压缩的前提下,最少需要多少存储空间(C)A. 8Byte B. 8KB C. 8bit D.8MB4、下列计算机设备中,属于存储设备的是(B)A.键盘 B.RAM C.显示器 D.CPU5、下列选项中,对计算机运行速度的快慢没有影响的是:(D)A.CPU B.内在 C.硬盘缓存 D.显示器的屏幕尺寸6、下面是计算机操作系统的是(D)A.Free Pascal B.Adobe Photoshop C.Microsoft Word D.Linux7、下列关于计算机病毒的描述中,正确的是(C)A.如果某人有感冒病毒,那么他使用的计算机就有可能感染病毒,并最终发展为计算机病毒B.如果计算机在生产厂家组装时周围环境不好(有灰尘等),计算机就会有计算机病毒C.计算机病毒实质上是一段计算机程序D.计算机病毒只能通过计算机网络传播8、关于网页中的超链接,下列说法正确的是:(A)A.超链接的HTML标志是<a> B.一张网页只能包含一个超链接C. 将网页保存为文本文件后,超链接依然存在D.超链接的对象只能是另一张网页。

9、下面列出的文件,不能用windows附件中画图程序打开的是(C)A.apple.bmp B.banana.jpg C.orange.raw D.pear.png10、关于电子邮件的叙述,正确的是(B)A.发送方和接收方必须同时开机才能传送电子邮件B.打开电子邮件的附件可能会传染计算机病毒C.同一个E-Mail帐号不能同时设置在多台计算机上D.发送电子邮件是,接收方地址不能与发送方相同。

NOIP2012提高组复赛试题

NOIP2012提高组复赛试题

全国信息学奥林匹克联赛(2012)复赛提高组22 . 1 •同余方程〖问题描述〗求关于的同余方程三1 (句的最小正整数解。

【输入〗输入文件为输入只有一行,包含两个正整数用一个空格隔开【输出〗输出文件为输出只有一行,包含一个正整数血即最小正整数解。

输入数据保证一定有解。

『输入输出样例〗『数据范围〗对于40%的数据,2L000:对于60%的数据,2 50 , 000, 000:对于100%的数据,2, 2, 000, 000, 0002 •借教室(.)【问题描述〗在大学期间,经常需要租借教室。

大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。

教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。

面对海量租借教室的信息,我们自然希望编程解决这个问题。

我们需要处理接下来n天的借教室信息,其中第i天学校有个教室可供租借。

共有m份订单,每份订单用三个正整数描述,分别为d],斗t},表示某租借者需要从第丬天到第t]天租借教室(包括第丬天和第t)天),每天需要租借个教室。

我们假定,租借者对教室的大小、地点没有要求。

即对于每份订单,我们只需要每天提供d]个教室,而它们具体是哪些教室,每天是否是相同的教室则不用考虑。

借教室的原则是先到先得,也就是说我们要按照订单的先后顺序依次为每份订单分配教室。

如果在分配的过程中遇到一份订单无法完全满足,则需要停止教室的分配,通知当前申请人修改订单。

这里的无法满足指从第丬天到第t)天中有至少一天剩余的教室数量不足d)个。

现在我们需要知道,是否会有订单无法完全满足。

如果有,需要通知哪一个申请人修改输入〗输入文件为第一行包含两个正整数n,m,表示天数和订单的数量。

第二行包含n个正整数,其中第i个数为,表示第i天可用于租借的教室数量。

接下来有m行,每行包含三个正整数],t],表示租借的数量,租借开始、结束分别在第几天。

每行相邻的两个数之间均用一个空格隔开。

天数与订单均用从1开始的整数编号。

全国青少年信息学奥林匹克联赛培训习题与解答(附程序解析主要是动态规划).pdf

全国青少年信息学奥林匹克联赛培训习题与解答(附程序解析主要是动态规划).pdf

例13-4迷宫寻宝【问题描述】一个n行m列的迷宫(1<=n,m<=5),入口在左上角,规定只能向下或向右走。

迷宫的某些地方藏有不同价值(>0)的宝藏,同时又存在一些障碍无法通过。

求到达右下角出口时收集宝藏的最大值。

【输入】第一行n和m一下n行m列描述迷宫矩阵a[I,j](-1:障碍);最大值【样例输入】342-150513-16-18910【样例输出】33【分析】A[I,j]保存第i行第j列的宝藏价值。

令f[I,j]为从(1,1)走到第i行第j列时所能收集的宝藏的最大价值。

状态转移方程:F[I,j]=max{f[I-1,j],f[I,j-1]}+a[I,j](i<=n,1<=m)条件:n[I,j]<>-1初始:f[1,1]=a[1,1]目标:f[n,m]【参考程序】Const maxn=50;maxm=50;Fin=’b1.in’;Fout=’b1.out’;VarF,a:array[0..maxn+1,0..maxm+1]of integer;I,j,k,n,m,t:integer;Procedure init;BeginAssign(input,fin);Reset(input);Readln(n,m);For i:=0to n+1doFor j:=0to m+1do a[I,j]:=-1;A[0,1]:=0;For i:=1to n doFor j:=1to m doBeginRead(a[I,j]);If(a[I,j-1]=-1)and(a[i-1,j]=-1)then a[I,j]:=-1;//很关键的预处理End;Close(input);End;Function max(a,b:integer):integer;Begin max:=a;if b>a then max:=b;end;Procedure work;BeginFillchar(f,sizeof(f),0);For i:=1to n doFor j:=1to m doIf a[I,j]<>-1Then f[I,j]:=max(f[i-1,j],f[I,j-1])+a[I,j];End;Procedure print;BeginAssign(output,fout);Rewrite(output);Writeln(f[n,m]);Close(output);End;BeginInit;Work;Print;End.13-5花店橱窗布置(IOI1999)【问题描述】假设你想以最美观的方式布置花店的橱窗。

信息学奥赛试题集

信息学奥赛试题集

全国青少年信息学奥林匹克联赛培训习题与解答(中学高级本)光盘模拟试题集普及组 (2)第一套 (2)打保龄球 (2)安全逃离 (2)表达式的转换 (3)到天宫做客 (4)第二套 (5)奶牛卧室 (5)进制转换 (5)硬币翻转 (5)拱猪计分 (6)第三套 (7)车厢重组 (7)阶乘问题 (8)子数整数 (8)垃圾陷阱 (9)提高组 (10)第一套 (10)低价购买 (10)棋盘游戏 (10)求正整数 (11)奇怪的电梯ok (11)第二套 (12)轰炸 (12)连续自然数和ok (12)约瑟夫 (13)点和线 (13)第三套 (14)杂务 (14)排行榜 (14)银行贷款 (15)机器人搬重物 (16)第四套 (17)数字组合 (17)相似基因 (17)波浪数 (18)文件压缩 (19)省队训练 (20)第一套 (20)海战ok (20)POLYGON (20)POWER (21)婚礼 (21)第二套 (22)多边形的面积 (22)玛丽卡 (23)PASTE (24)SEARCH (24)第三套 (25)文件排版 (25)纵横填字游戏 (26)普通递归关系 (27)完美的对称 (28)普及组第一套打保龄球源程序名bowling.??? (pas,c,cpp)可执行文件名 bowling.exe输入文件名 bowling.in输出文件名 bowling.out打保龄球是用一个滚球去打击十个站立的柱,将柱击倒。

一局分十轮,每轮可滚球一次或多次,以击倒的柱数为依据计分。

一局得分为十轮得分之和,而每轮的得分不仅与本轮滚球情况有关,还可能与后续一两轮的滚球情况有关。

即某轮某次滚球击倒的柱数不仅要计入本轮得分,还可能会计入前一两轮得分。

具体的滚球击柱规则和计分方法如下:(1)若某一轮的第一次滚球就击倒全部十个柱,则本轮不再滚球(若是第十轮则还需另加两次滚球,不妨称其为第十一轮和第十二轮,并不是所有的情况都需要滚第十一轮和第十二轮球)。

冬令营一试题目

冬令营一试题目

2012年北京市信息学竞赛冬令营一试好好学习,天天向上题目名称源代码文件输入文件输出文件数据组数总分算不出的等式calculator.*calculator.in calculator.out10100最多的方案fib.*fib.in fib.out10100连连看clear.*clear.in clear.out10100算不出的算式背景:曾经有一个老掉牙的游戏放在我面前,我没有珍惜。

直到这个游戏停产才追悔莫及。

人世间最痛苦的事情莫过于此,如果上天给我一个再玩一次的机会,我一定要,通关!题目描述:如果你真的很想玩这个游戏,那么就先看看我的题目吧,搞不定这些的话是没办法通关的哟。

第一关其实很简单,只有一个关闭的有密码锁的大门。

这大门上写着一个奇怪的算式,估计是要你利用它算出密码来开门吧(果然是老掉牙的情节)。

传说中这个式子中的p和q是两个奇质数,等号右边算出来应该就是密码了吧,你是真的算不出来么?输入:只有一行,两个奇质数,分别表示p,q。

输出:一个数,表示算式结果。

样例输入:57样例输出:6HINT:p,q在32位整型范围内。

最多的方案题目描述:第二关和很出名的斐波那契数列有关,地球上的OIer都知道:F1=1, F2=2,F i=F i-1+F i-2,每一项都可以称为斐波那契数。

现在给一个正整数N,它可以写成一些斐波那契数的和的形式。

如果我们要求不同的方案中不能有相同的斐波那契数,那么对一个N最多可以写出多少种方案呢?输入:只有一个整数N。

输出:一个方案数样例输入:16样例输出:4Hint:16=3+13=3+5+8=1+2+13=1+2+5+8对于30%的数据,n<=256对于100%的数据,n<=10^18连连看题目描述:凡是考智商的题里面总会有这么一种消除游戏。

不过现在面对的这关连连看可不是QQ游戏里那种考眼力的游戏。

我们的规则是,给出一个闭区间[a,b]中的全部整数,如果其中某两个数x,y(设x>y)的平方差x2-y2是一个完全平方数z2,并且y与z互质,那么就可以将x 和y连起来并且将它们一起消除,同时得到x+y点分数。

NOIP2012信息学奥林匹克竞赛初赛-模拟卷

NOIP2012信息学奥林匹克竞赛初赛-模拟卷

2012年全国青少年信息学奥林匹克联赛初赛模拟试题一.单项选择题(共10题,每题1.5分,共计15分,每题有且仅有一个正确答案。

)1、以下说法正确的是()A、第一个提出“goto语句有害论”的计算机科学家是Donald E.KnuthB、被誉为“迄今最伟大的计算机程序员、算法学家”的是Edsger Wybe DijkstraC、世界上第一位程序员是V on NoumaD、被誉为“计算机语言之母”的是Grace Hopper2、关于CPU的说法正确的是()A、计算机的运算速度取决于给定的时间内,它的处理器所能处理的数据量。

B、64位计算机指的是CPU每秒钟可处理的数据为2^64位。

C、双核CPU,是指在一个主板上放入两个CPU并行进行工作。

D、我国自主产权的CPU龙芯3A集成了两个处理器核心3、ASCII码表中的大写字母后有6个其它字符,接着便是小写字母。

现已知:A字母的ASCII码为(41)16{表示16进制数41 },那么f应为( )10A、46B、78C、102D、1084、Pascal的创始人是()。

(A)Donald E.Knuth (B)Steve Jobs (C)Charles Bachman D (D)Niklaus Wirth5、若二叉树的先序遍历序列为ABDECF,中序遍历序列DBEAFC,则其后序遍历序列为()A. DEBAFCB. DEFBCAC. DEBCFAD. DEBFCA6、已知后缀表达式abc+*d-,则它的中缀表达式和前缀表达式分别是:A) (a+b)*c-d -+*abcd B)a+b*c-d -+a*bcdC)a*(b+c)-d -*a+ bcd D)a*(b+c)-d -a b*+cd7、由权值为9,2,5,7的四个叶子结点构造一棵哈夫曼树,该树的带权路径长度为()A.23B.37C.44D.468、排序算法是稳定的意思是:关键码相同的记录排序前后相对位置不发生改变,下列哪种排序算法是不稳定的:A) 冒泡排序 B) 插入排序 C) 归并排序 D) 快速排序9、下图给出了一个加权有向图,从顶点V1出发,以下哪个是活动中的关键路径()A. V1,V5,V3,V2B. V1,V4,V3,V2C. V1,V4, V2D. V1,V4,V5,V3,V210、以下有关全国信息学奥林匹克竞赛说法有误的是()A、 NOI评测只检查按照要求输出的结果,而不涉及过程和算法。

2012年青少年信息学奥林匹克联赛初赛自测试题

2012年青少年信息学奥林匹克联赛初赛自测试题

2012年青少年信息学奥林匹克联赛初赛自测试题一、选择正确的答案代码(A/B/C/D/E ),1-10题为单选题,11-20题为不定项选择题。

(每题1.5分,只有全对才得分,共30分)1、在解决计算机主机与打印机之间速度不匹配时通常设置一个打印数据缓冲区,主机将要输出打印的数据依次写入该缓冲区,而打印机从该缓冲区中取出数据打印。

该缓冲区应该是一个( )结构。

A.堆栈B.队列C.数组D.记录E.线性表2、如果一张有60分钟的cd 唱盘,其采样频率为44.1khz ,采样数据为16位,双声道,那么它的容量所占用的存储空间为( )。

A.400mbB.600mbC.500mbD.700mb3、一棵树T 有2个度数为2的结点,有1个度数为3的结点,有3个度数为4的结点,那么树T 有( )个树叶。

A.14B.6C.18D.74、下面四个不同的进制的数,最小的一个数是( )A .(11011001)2B .(75)10C .(37)8D .(A7)165、在待排序的数据表已经为有序时,下列排序算法中花费时间反而多的是( )A .堆排序B .希尔排序C .冒泡排序D .快速排序6、现有一满瓶8两可乐,另有两个3两和5两的空瓶子,再也没有其它容器了,小明只能喝4两,问他至少要倒多少次才能刚好喝到4两可乐( )A. 4B.5C.6D.7E.87、中缀表达式(a-b)*(cd)的后缀表达式是( )A. abcd*- ab-cd C. ab-*cd D. a-bcd *8、断电后计算机信息依然存在的部件为( )A .寄存器 B. RAM 存储器 C. ROM 存储器 D. 运算器 E.控制器9、设有两个散列函数h1(k)=k mod 13 和 h2(k)=k mod 11 +1,散列表为T[0…12],用二次散列法解决冲突。

函数h1用来计算散列地址,当发生冲突时,h2作为计算下一个探测地址的地址增量。

假定某一时刻散列表的状态为:0 1 2 3 4 5 6 7 8 9 10 11 1280 44 35下一个被插入的关键码为57,其插入的位置为( )A. 4B. 5C. 6D. 7E. 810、 假设在程序开始执行时,数组A[1…n]是一组随机整数。

NOIP2012普及组复赛试题及解答

NOIP2012普及组复赛试题及解答
第 5 页 共 10页
全国信息学奥林匹克联赛(NOIP2012)复赛 试题及解答
普及组
start--; do{ start++; start%=m; //start是刚进入第i+1层时的房间号 if (a[i][start][0]==1) //此房间有楼梯 { k--; } } while (k!=0); //k!=0表示尚未找到牌号所指示的房间 } fprintf(outputfp,"%d\n",temp); } fclose(inputfp); fclose(outputfp); return 0; }
第 3 页 共 10页
全国信息学奥林匹克联赛(NOIP2012)复赛 试题及解答
普及组
2.寻宝
(treasure.cpp/c/pas) 传说很遥远的藏宝楼顶层藏着诱人的宝藏。 小明历尽千辛万苦终于找到传说中的这个藏 宝楼,藏宝楼的门 口竖着一个木板,上面写有几个大字:寻宝说明书。说明书的内容如下: 藏宝楼共有 N+1 层, 最上面一层是顶层, 顶层有一个房间里面藏着宝藏。 除了顶层外,藏宝楼另有 N 层, 每层 M 个房间, 这 M 个房间围成一圈并按逆时针方向依次编号为 0, …, M-1。其中一些房间有通往上一层的 楼梯,每层楼的楼梯设计可能不同。每个房间里有一个 指示牌,指示牌上有一个数字 x,表示从这个房间开始 按逆时针方向选择第 x 个有楼梯的房 间(假定该房间的编号为 k) ,从该房间上楼,上楼后到达上一层的 k 号 房间。比如当前房 间的指示牌上写着 2, 则按逆时针方向开始尝试, 找到第 2 个有楼梯的房间, 从该房间上楼。 如果当前房间本身就有楼梯通向上层,该房间作为第一个有楼梯的房间。 寻宝说明书的最后用红色大号字体写着: “寻宝须知:帮助你找到每层上楼房间的指示 牌上的数字(即每 层第一个进入的房间内指示牌上的数字)总和为打开宝箱的密钥” 。 请帮助小明算出这个打开宝箱的密钥。 【输入】 输入文件为 treasure.in 第一行 2 个整数 N 和 M,之间用一个空格隔开。N 表示除了顶层外藏宝楼共 N 层楼, M 表示除顶层外每层楼有 M 个房间。 接下来 N*M 行,每行两个整数,之间用一个空格隔开,每行描述一个房间内的情况, 其中第(i-1)*M+j 行表示第 i 层 j-1 号房间的情况(i=1, 2, …, N;j=1, 2, … ,M) 。第一个整数 表示该房间是否有楼梯通往上一层 (0 表示没有,1 表示有) ,第二个整数表示指示牌上的数 字。注意,从 j 号房间的楼梯爬到上一层到达的房间 一定也是 j 号房间。 最后一行,一个整数,表示小明从藏宝楼底层的几号房间进入开始寻宝(注:房间编号 从 0 开始) 。 【输出】 输出文件名为 treasure.out。 输出只有一行,一个整数,表示打开宝箱的密钥,这个数可能会很大,请输 出对 20123 取模的结果即可。 【输入输出样例】 treasure.in 2 3 1 2 0 3 1 4 0 1 1 5 1 2 1

NOI2012第一试

NOI2012第一试

第29届全国青少年信息学奥林匹克竞赛CCF NOI 2012第一试竞赛时间:2012年7月30日 8:00-13:00注意:最终测试时,所有编译命令均不打开任何优化开关。

随机数生成器【问题描述】栋栋最近迷上了随机算法,而随机数生成是随机算法的基础。

栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列,这种方法需要设置四个非负整数参数 m,a,c,X0,按照下面的公式生成出一系列随机数<X n>:X n+1=(aX n + c) mod m其中 mod m 表示前面的数除以 m 的余数。

从这个式子可以看出,这个序列的下一个数总是由上一个数生成的。

用这种方法生成的序列具有随机序列的性质,因此这种方法被广泛地使用,包括常用的C++和Pascal的产生随机数的库函数使用的也是这种方法。

栋栋知道这样产生的序列具有良好的随机性,不过心急的他仍然想尽快知道X n是多少。

由于栋栋需要的随机数是0,1,…,g−1 之间的,他需要将 X n除以 g 取余得到他想要的数,即 X n mod g,你只需要告诉栋栋他想要的数X n mod g 是多少就可以了。

【输入格式】输入文件random.in中包含6个用空格分割的整数 m,a,c,X0,n 和 g ,其中 a,c,X0是非负整数,m,n,g 是正整数。

【输出格式】输出到文件random.out中,输出一个数,即 X n mod g。

【样例输入】11 8 7 1 5 3【样例输出】2【样例说明】<X n>因此答案为 X5【数据规模与约定】骑行川藏【问题描述】蛋蛋非常热衷于挑战自我,今年暑假他准备沿川藏线骑着自行车从成都前往拉萨。

川藏线的沿途有着非常美丽的风景,但在这一路上也有着很多的艰难险阻,路况变化多端,而蛋蛋的体力十分有限,因此在每天的骑行前设定好目的地、同时合理分配好自己的体力是一件非常重要的事情。

第十二届全国青少年信息学奥林匹克联赛初赛试题及参考答案

第十二届全国青少年信息学奥林匹克联赛初赛试题及参考答案

第十二届全国青少年信息学奥林匹克联赛初赛试题及参考答案第十二届全国青少年信息学奥林匹克联赛初赛试题(提高组C 语言二小时完成)● ● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(共10题,每题1.5分,共计15分。

每题有且仅有一个正确答案.)。

1. 在以下各项中。

()不是CPU的组成部分。

A. 控制器B. 运算器C. 寄存器D. ALUE. RAM答案:E知识点:寄存器是中央处理器内的组成部份。

寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。

在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。

在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。

寄存器是内存阶层中的最顶端,也是系统获得操作资料的最快速途径。

寄存器通常都是以他们可以保存的位元数量来估量,举例来说,一个“8 位元寄存器”或“32 位元寄存器”。

寄存器现在都以寄存器档案的方式来实作,但是他们也可能使用单独的正反器、高速的核心内存、薄膜内存以及在数种机器上的其他方式来实作出来。

寄存器通常都用来意指由一个指令之输出或输入可以直接索引到的暂存器群组。

更适当的是称他们为“架构寄存器”。

例如,x86 指令及定义八个32 位元寄存器的集合,但一个实作x86 指令集的 CPU 可以包含比八个更多的寄存器。

寄存器是CPU内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。

算术逻辑单元 (Arithmetic-Logic Unit, ALU)是中央处理器(CPU)的执行单元,是所有中央处理器的核心组成部分,由"And Gate" 和"Or Gate"构成的算术逻辑单元,主要功能是进行二位元的算术运算,如加减乘(不包括整数除法)。

基本上,在所有现代CPU体系结构中,二进制都以补码的形式来表示。

2. BIOS(基本输入输出系统)是一组固化在计算机内()上一个ROM芯片上的程序。

NOIP2012提高组复赛试题

NOIP2012提高组复赛试题

CCF全国信息学奥林匹克联赛(NmP2012)复赛提高组day22. 1 ·同余方程〖问题描述〗求关于的同余方程三1 (mod句的最小正整数解。

输入〗输入文件为mod.ino输入只有一行,包含两个正整数用一个空格隔开输出〗输出文件为mod.outo输出只有一行,包含一个正整数№即最小正整数解。

输入数据保证一定有解。

〖输入输出样例〗对于40%的数据,2 L000:对于60%的数据,2 50,000,000:对于100%的数据,2,2,000,000,000。

2 ·借教室 (classroom. cpp/c/pas)问题描述〗在大学期间,经常需要租借教室。

大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。

教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。

面对海量租借教室的信息,我们自然希望编程解决这个问题。

我们需要处理接下来n天的借教室信息,其中第i天学校有个教室可供租借。

共有m份订单,每份订单用三个正整数描述,分别为d],斗t},表示某租借者需要从第丬天到第t]天租借教室(包括第丬天和第t)天),每天需要租借dj个教室。

我们假定,租借者对教室的大小、地点没有要求。

即对于每份订单,我们只需要每天提供d]个教室,而它们具体是哪些教室,每天是否是相同的教室则不用考虑。

借教室的原则是先到先得,也就是说我们要按照订单的先后顺序依次为每份订单分配教室。

如果在分配的过程中遇到一份订单无法完全满足,则需要停止教室的分配,通知当前申请人修改订单。

这里的无法满足指从第丬天到第t)天中有至少一天剩余的教室数量不足d)个。

现在我们需要知道,是否会有订单无法完全满足。

如果有,需要通知哪一个申请人修改输入〗输入文件为classroom.in第一行包含两个正整数n,m,表示天数和订单的数量。

第二行包含n个正整数,其中第i个数为ri,表示第i天可用于租借的教室数量。

接下来有m行,每行包含三个正整数dJ,s],t],表示租借的数量,租借开始、结束分别在第几天。

NOI2012第二试

NOI2012第二试

第29届全国青少年信息学奥林匹克竞赛CCF NOI 2012第二试竞赛时间:2012年8月1日 8:00-13:00注意:最终测试时,所有编译命令均不打开任何优化开关。

迷失游乐园【问题描述】放假了,小Z觉得呆在家里特别无聊,于是决定一个人去游乐园玩。

进入游乐园后,小Z看了看游乐园的地图,发现可以将游乐园抽象成有n个景点、m 条道路的无向连通图,且该图中至多有一个环(即m只可能等于n或者n-1)。

小Z现在所在的大门也正好是一个景点。

小Z不知道什么好玩,于是他决定,从当前位置出发,每次随机去一个和当前景点有道路相连的景点,并且同一个景点不去两次(包括起始景点)。

贪玩的小Z会一直游玩,直到当前景点的相邻景点都已经访问过为止。

小Z所有经过的景点按顺序构成一条非重复路径,他想知道这条路径的期望长度是多少?小Z把游乐园的抽象地图画下来带回了家,可是忘了标哪个点是大门,他只好假设每个景点都可能是大门(即每个景点作为起始点的概率是一样的)。

同时,他每次在选择下一个景点时会等概率地随机选择一个还没去过的相邻景点。

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

第一行是两个整数 n 和 m,分别表示景点数和道路数。

接下来 m 行,每行三个整数 X i,Y i,W i,分别表示第 i 条路径的两个景点为X i,Y i,路径长 W i。

所有景点的编号从1至 n ,两个景点之间至多只有一条道路。

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

共一行,包含一个实数,即路径的期望长度。

【样例输入】4 31 2 32 3 13 4 4【样例输出】6.00000000【样例解释】【评分方法】本题没有部分分,你程序的输出只有和标准答案的差距不超过0.01时,才能获得该测试点的满分,否则不得分。

【数据规模和约定】美食节【问题描述】CZ市为了欢迎全国各地的同学,特地举办了一场盛大的美食节。

作为一个喜欢尝鲜的美食客,小M自然不愿意错过这场盛宴。

他很快就尝遍了美食节所有的美食。

2012年长沙市小学生信息学奥林匹克竞赛初赛试题与答案

2012年长沙市小学生信息学奥林匹克竞赛初赛试题与答案

2012年长沙市小学生信息学奥林匹克竞赛初赛试题(时间:90分钟)参赛证号:姓名:学校:总分:一、单项选择题(每小题2分,共40分)1.目前获得世界计算机科学最高奖——“图灵奖”唯一的华人是()A、袁隆平B、冯.诺依曼C、华罗庚D、姚期智2.现在学校、家庭使用的台式电脑都是微型计算机,微型机的核心部件是()A、主板B、中央处理器C、硬盘D、显示器3.有效预防病毒入侵的方法是()①用可移动存储设备时先行杀毒软件②及时修复系统漏洞③随意打开来路不明的邮件④安装并及时升级杀毒软件A、①②③B、①③④C、①②④D、②③④4.以下关于计算机语言的说法中,错误的是()A、机器语言具有直接执行和速度快等特点。

B、高级程序员用计算机高级语言编程,而我们小学生学的是计算机低级语言。

C、汇编语言有着高级语言不可替代的用途。

D、机器语言和汇编语言都是计算机低级语言。

5.若E=0,则(((E*2+1)*2+1)*2+25 div 3 mod 3-trunc(2.5)值为()A、10B、8C、26D、06.执行a:=0.123456;writeln(‘a=’,a:0:4)的输出结果是()A、‘a=’,0.4B、a=0.1234C、0.123456E+4D、a=0.12357.设A、B为boolean型变量,下列逻辑表达式的值恒为TRUE的是()A、A or B or not A and not BB、A or B and not A or BC、B and A or not A and not BD、B or not A and B and A8.用for i:=1 to 3 do for j:=1 to 3 do read(a[i,j]);读入数据...*.....之后,表示‘*’的是()A、a[1,4]B、a[1,2]C、a[2,1]D、a[3,1]9.a:=’a’; b:=’c’;a:=c+b;writeln(a)的输出结果是()A、accB、acaC、ccaD、cac10.将变量ch1中大写字母变成相应的小写字母给变量ch2,正确的语句是()A、ch2:=upcase(ch1)B、ch2:=chr(ord(‘A’-ord(‘a’)+ord(ch1))C、ch2:=chr(ord(ch1)+32)D、ch2:=chr(ord(ch1)-32)11.下列有关数制的等式正确的是()A、(10.75)10=(1010.011)2B、(2)8*(6)8=(14)8C、(110010)2+(16)10=(100100)2D、(1000)2=(8)812.由1个a和3个b构成的所有字符串中,包含子串’ab’的共有()个。

全国信息学奥林匹克联赛(NOIP2012)复赛提高组Day1试题

全国信息学奥林匹克联赛(NOIP2012)复赛提高组Day1试题

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

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

3、全国统一评测时采用的机器配置为:CPU Intel Core2 Quad Q8200 2.33GHz, 内存2G ,上述时限以此配置为准。

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

1.Vigenère密码(vigenere.cpp/c/pas)【问题描述】16世纪法国外交家Blaise de Vigenère设计了一种多表密码加密算法——Vigenère密码。

Vigenère密码的加密解密算法简单易用,且破译难度比较高,曾在美国南北战争中为南军所广泛使用。

在密码学中,我们称需要加密的信息为明文,用M表示;称加密后的信息为密文,用C表示;而密钥是一种参数,是将明文转换为密文或将密文转换为明文的算法中输入的数据,记为k。

在Vigenère密码中,密钥k是一个字母串,k=k1k2…k n。

当明文M=m1m2…m n 时,得到的密文C=c1c2…c n,其中c i=m i?k i,运算?的规则如下表所示:【输入】输入文件名为vigenere.in。

输入共2行。

第一行为一个字符串,表示密钥k,长度不超过100,其中仅包含大小写字母。

第二行为一个字符串,表示经加密后的密文,长度不超过1000,其中仅包含大小写字母。

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

输出共1行,一个字符串,表示输入密钥和密文所对应的明文。

对于100%的数据,输入的密钥的长度不超过100,输入的密文的长度不超过1000,且都仅包含英文字母。

2.国王游戏(game.cpp/c/pas)【问题描述】恰逢H国国庆,国王邀请n位大臣来玩一个有奖游戏。

2012级信息奥赛第二次考试题目

2012级信息奥赛第二次考试题目

2012级信息奥赛第二次考试题目一、三角形个数(triangle)由键盘输入绳子的长度n,将该绳子分成三段,每段长度为正整数,请编程输出由该三段绳子组成的三角形个数。

(三角形边长为(3,2,2)和三角形边长为(2,2,3)只能算是一个三角形)【输入】只有一行且只有一个正整数:n ( 1 < n < 3200 )【输出】只有一行且只有一个正整数:可以构成的三角形个数【样例输入】7【样例输出】2【样例输出说明】2表示边长为:(3,3,1)和(3,2,2)的两个三角形)二、线交点问题(line)平面上有n(n<=20)条直线,且无三线共点,问这些直线的能有多少种不同的交点数;【输入】一行,一个整数n,表示有n条直线【输出】输出若干行,列出所有的相交方案,其中每一行为一个可能方案的交点数。

【输入样例】4【输出样例】34563、青蛙(frog)有一条河,左边一个石墩(A区)上有编号为1,2,3,4,…,n的n只青蛙,河中有k个荷叶(C区),还有h个石墩(D区),右边有一个石墩(B区),如下图2—5所示。

n只青蛙要过河(从左岸石墩A 到右岸石墩B),规则为:(1)石墩上可以承受任意多只青蛙,荷叶只能承受一只青蛙(不论大小);(2)青蛙可以:A→B(表示可以从A跳到B,下同),A→C,A→D,C→B,D→B,D→C,C→D;(3)当一个石墩上有多只青蛙时,则上面的青蛙只能跳到比它大1号的青蛙上面。

你的任务是对于给出的h,k,计算并输出最多能有多少只青蛙可以根据以上规则顺利过河?【输入】一行,两个数,表示河中石墩和荷叶的数目【输出】一行,表示能按规则过河的青蛙最大数目【样例输入】2 3【样例输出】16。

NOIP2012普及组复赛试题及解答

NOIP2012普及组复赛试题及解答

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

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

3、全国统一评测时采用的机器配置为:CPU Intel Core2 Quad Q8200 2.33GHz,内存2G,上述时限以此配置为准。

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

【问题描述】1.质因数分解(prime.cpp/c/pas)已知正整数n 是两个不同的质数的乘积,试求出较大的那个质数。

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

输入只有一行,包含一个正整数n。

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

输出只有一行,包含一个正整数p,即较大的那个质数。

【输入输出样例】【数据范围】对于60%的数据,6 ≤ n ≤ 1000。

对于100%的数据,6 ≤ n ≤ 2*109。

[解题思路] 1.根据数据范围,可以判断数据范围为长整型(long=4 bytes)补充数据类型:整型char 1byteInt 4bytesShort 2bytesLong 4bytesLong long 8bytes程序:#include <stdio.h>#include <math.h>#include <string.h>int a[44722]={0}; //用于筛选法求素数,有题目数据范围可知,涉及到的最大素数一定小于44722 int b[10000]={0}; //用于存储素数,b[i]用于存储第i+1个素数int count=0;void calculatePrime(void) //筛选法求素数,主要考虑到时间效率,所以用此法求素数{int i,j;memset(a,-1,sizeof(a));memset(b,0,sizeof(b));a[0]=a[1]=0;for (i=2;i<50000;i++){if (a[i]==-1){for (j=i+i;j<50000;j+=i){a[j]=0;}}}for (i=2;i<50000;i++){if (a[i]==-1){b[count++]=i;}}}int main(void){int i,n,squre,temp;FILE *inputfp; FILE*outputfp;calculatePrime();inputfp=fopen("prime.in.txt","r");outputfp=fopen("prime.out.txt","w");while (fscanf(inputfp,"%d",&n)!=EOF){printf("%d",n);squre=(int)sqrt(n);for (i=0;i<=squre&&i<count;i++){if (n%b[i]==0) //核心:两个素数的积一定为合适,且只有3个因子{temp=n/b[i]; break;}}fprintf(outputfp,"%d\n",temp);}fclose(inputfp);fclose(outputfp);return 0;}2.寻宝(treasure.cpp/c/pas)传说很遥远的藏宝楼顶层藏着诱人的宝藏。

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

2012年全国青少年信息学奥林匹克冬令营竞赛时间:2012年2月11日8:00-13:00注意:最终测试时,所有编译命令均不打开任何优化开关。

最小生成树【问题描述】给定无向带权连通图G,我们希望通过修改边的权值,使它的最小生成树唯一。

已知减小、增加一条边的权值的单位代价分别为a和b,且修改后的权值必须为非负整数。

例如,对某个图G,如果将一条边的权值减3、另一条边的权值加2之后,它的最小生成树唯一,则此时的代价之和是3a+2b。

试计算代价之和的最小值。

【输入格式】输入文件mst.in的第一行包含数据编号,对于第i个数据,第一行将包含字符串“mst i”。

第二行包含4个正整数n, m, a, b,分别表示图G顶点的个数、边的条数,以及对一条边的权值减1、加1的代价。

接下来m行,每行3个正整数x, y, w,表示顶点x和顶点y之间连有一条初始权值为w的边。

顶点由1至n编号。

【输出格式】输出文件mst.out仅包含一行,包含一个非负整数,即要求的最小值。

如果无需修改,即图本身的最小生成树就是唯一的,则输出0。

【样例输入】mst 04 5 2 31 2 11 3 12 3 12 4 23 4 2【样例输出】5【样例说明】将边(2, 4)的权值减1,边(2, 3)的权值加1之后,图G的最小生成树唯一,且此时的代价之和取到最小值。

【数据规模和附加文件】记忆中的水杉树【问题描述】江苏省常州高级中学是一所百年名校,这里萦绕着无数人难以忘怀的回忆。

Will记得,在他小的时候,常州高级中学改建以前,学校里有一片高大的水杉林,每到水杉落叶之时,针状的叶子会像毯子一样盖在地上,走在上面浪漫而又闲适。

那时,Will和同学们还喜欢用这些针叶,在水杉树下,玩“取叶子”的游戏。

游戏一开始,大家先将n片针叶平铺在地上。

接着,每一轮可以有一个同学选择一片针叶,按水平或者垂直方向将针叶移走(也就是平移到无穷远处)——当然,前提是移动过程中不被任何尚未移走的针叶所阻碍。

如果某一轮针叶的移动会被阻碍,那么这次移动就是非法的,是不被允许的。

n轮过后,当针叶都被移走时,游戏也就结束了。

针叶并不是任何时刻都可以被移动的。

当针叶很多的时候,判断每一轮中一片针叶是否可以按一个特定的方向移动是一件很麻烦的事情。

现在我们将地面抽象为平面直角坐标系,n片针叶抽象为平面上n条互不相交的线段,并将其从1到n编号,Will还将给出每一轮游戏中,他想要移动的针叶编号以及移动方向,请你帮助他:1)找出最早的一次非法移动出现在哪一轮;2)给出一个合法的移动方案完成这个游戏。

注意:在线段移动时仅端点接触不会造成阻碍,具体请参见样例。

【输入格式】输入文件memory.in的第一行包含一个正整数n,表示针叶的数量。

接下来n行,每行4个整数,描述针叶的位置信息。

其中第i行的整数为a i,b i,c i,d i,表示编号为i的针叶所抽象成的线段的端点为(a i, b i)和(c i, d i)。

接下来n行,每行2个整数,描述移动操作。

其中第i行的整数为p i,q i,表示第i轮移动的针叶编号为p i,方向为q i。

其中q i为一个0到3之间的整数,0表示向左平移(即x轴负方向),1表示向上平移(即y轴正方向),2表示向右平移,3表示向下平移。

输入数据保证:•所有线段长度为正,两两之间没有公共点,且不存在垂直或者水平的线段;•p1到p n恰好组成一个1到n的排列;•Will所给出的移动操作中一定存在非法移动;•n轮均合法的移动操作总是存在的。

输出文件memory.out一共包含n + 1行。

输出的第一行包含一个1到n之间的整数,表示最早出现非法移动的是哪一轮。

接下来n行,每行两个整数,内容同输入格式所述,描述一个合法的移动序列。

【评分标准】对于一个测试点:•如果非法移动判断正确,但是给出的移动方案错误,可以得到5分;•如果非法移动判断错误,但是给出的移动方案正确,可以得到5分;•如果非法移动的判断与给出的移动方案均正确,则可以得到10分;•否则,得0分。

注意:如果程序的输出格式不正确,将被直接判作0分。

【样例输入1】52 5 5 82 13 55 26 57 0 4 23 14 02 03 04 01 25 1【样例输出1】32 03 04 31 25 1【样例说明1】在Will给出的移动方案的第3轮中,编号为4的针叶向左移动会被编号为5的针叶阻碍。

4-1 1 2 313 5 9 810 10 15 1410 17 0 203 12 11 14 1【样例输出2】24 13 12 11 1【数据规模和约定】卡坦传奇【问题描述】栋栋最近迷上了一款名为卡坦岛的游戏,这个游戏在一个地图上进行,这个地图上每个时刻会产生一些资源,玩家的主要目标是获取资源和建造房屋。

栋栋最近正在研究游戏的策略,他希望从一些简单的情况入手。

为此,栋栋简化了游戏并给出了一些游戏的局面,希望你能帮助他找到这些游戏局面的优秀解法。

栋栋简化后的游戏是在一个由n × m 个方格组成的地图上进行的,如下图所示。

为了描述方便,我们用[r , c ]表示上图中的第r 行(1 ≤ r ≤ n )第c 列(1 ≤ c ≤ m )的方格。

[r , c ]的左上角坐标用(r –1, c –1)表示,右下角坐标用(r , c )表示(请注意圆括号和方括号的区别)。

每一个方格[r , c ]都有一个资源属性S [r , c ]和一个点数属性D [r , c ]。

其中资源属性S [r , c ]只能是1, 2, 3, 4中间的一个,而点数属性D [r , c ]可以是任意非负整数。

游戏玩家可以通过建造房屋来获得方格中产生的资源。

房屋有两种:普通房和城堡,都只能建在方格的顶点上。

要建造一个普通房需要的四种资源数量分别为h 1, h 2, h 3, h 4。

普通房可以升级为城堡,升级所需要的四种资源数量分别为l 1, l 2, l 3, l 4。

如果直接建造一个城堡,需要的四种资源数量分别为h 1+l 1, h 2+l 2, h 3+l 3, h 4+l 4。

在建造房屋时,任意两个房屋之间的直线距离必须严格大于1,且除首次外的建造位置必须与某个已建路段相连。

路段也需要由玩家建造,每个路段都是某个方格的一条边。

建造一个路段所需要的四种资源数量分别为a 1, a 2, a 3, a 4,且必须与已建造的路段或房屋有公共点。

路段可以重复建造,重复建造时花费的资源数量仍为a 1, a 2, a 3, a 4(重复建造路段一般是没有意义的,但规则允许这么做)。

每个时刻t ,游戏生成一个数字V t ,每个点数D [r , c ]为V t 的方格都会产生编号为S [r , c ]的资源,它四个角上的房屋(如果有的话)会得到相应的资源:任意普通房将获得1个S [r , c ]号资源,任意城堡将获得2个S [r , c ] 号资源。

这些资源都汇总到玩家手中。

例如,在一个资源属性为4的方格的四个角上,有一个普通房和一个城堡,则在时刻t ,如果这个方格的点数等于V t ,玩家会从这个方格获得3个资源4。

在同一时刻,一个房屋可能从多个方格得到资源。

在游戏开始时,玩家有4种资源数量分别为h 1, h 2, h 3, h 4。

利用这些资源,玩家可以在任意位置建造一个普通房。

[1, 1][1, 2][1, 3][1, 4][2, 1] [2, 2] [2, 3] [2, 4][3, 1] [3, 2] [3, 3] [3, 4](0, 1) (0, 2) (0, 3) (0, 4) (1, 4)(2, 4) (3, 4)任何时刻,玩家可以用K个相同的资源换成1个另一种资源,其中K是游戏规定的值。

比如他可以使用K个资源3换1个资源4。

现在,栋栋告诉了你地图和每个时刻游戏生成的数字V t,需要你在尽量少的时间内,使得城堡个数的两倍+ 普通房个数至少为10。

【输入格式】这是一道提交答案的试题,在你的目录下有10个输入文件catan1.in~ catan10.in。

输入的第一行包含两个整数n, m,分别表示方格的行数和列数。

接下来n行表示所有方格的资源属性,其中第r行有m个整数,第r行第c 列的整数表示S[r, c]。

接下来n行表示所有方格的点数属性,其中第r行有m个整数,第r行第c 列的整数表示D[r, c]。

接下来的一行包含4个整数h1, h2, h3, h4,分别表示建造普通房所需要的4种资源数量。

接下来的一行包含4个整数l1, l2, l3, l4,分别表示从普通房升级城堡所需要的4种资源数量。

接下来的一行包含4个整数a1, a2, a3, a4,分别表示建造路段所需要的4种资源数量。

接下来的一行包含1个整数K,表示玩家可以使用K个相同的资源替换成1个另一种资源。

接下来的一行包含1个整数G,表示给出的时间长度。

最后一行包含G个整数V1, V2, …, V G,分别表示每个时刻游戏生成的数字。

【输出格式】对于每一个输入文件,在目录下给出对应的输出文件catan*.out。

输出的第一行包含一个整数ans,表示建造足够数量的房屋(即城堡个数的两倍+ 普通房个数至少为10)所需要的时间长度。

接下来两行,表示游戏开始时玩家的方案。

其中第一行包含一个大写字母B 和两个整数x0, y0,表示初始时在(x0, y0)位置建造一个普通房。

其中第二行包含一个大写字母E。

接下来ans个部分,表示游戏的方案。

其中第i个部分包含若干行,表示在时刻i的资源产生后玩家的动作。

•若一行包含一个大写字母B和两个整数x, y,表示在(x, y)位置建造一个普通房。

•若一行包含一个大写字母C和两个整数x, y,表示在(x, y)位置建造一个城堡。

•若一行包含一个大写字母U和两个整数x, y,表示将(x, y)位置的普通房升级为城堡。

•若一行包含一个大写字母R和四个整数x1, y1, x2, y2,表示在(x1, y1)和(x2, y2)两个位置间建造一个路段。

其中(x1, y1)和(x2, y2)的距离必须为1。

•若一行包含一个大写字母X和两个整数p, q,表示将K个资源p换成一个资源q。

•若一行包含一个大写字母E,表示该部分的结束。

注意:你的输出文件的大小不能超过1MB。

【评分标准】对于每个测试点,如果你没有输出、输出不合法或在给定的时间G内不能建造足够数量的房屋,则得0分。

否则,对于每个数据,我们设有9个评分参数m2、…、m10。

•若ans ≤m10,得10分;•若m i+1 < ans≤m i,得i分;•若ans > m2,得1分。

【如何测试你的输出】在你的目录下有一个程序checker可以用来测试你的输出结果,你可以在终端中使用以下命令来检查你的输出结果:./checker N其中N为测试点的编号,例如,要测试第3个测试点可以使用./checker 3该程序会检测你的输出是否合法。

相关文档
最新文档