08普及组复赛+解题报告
2001-2002年普及复赛试题及分析

2001第七届全国青少年信息学(计算机)奥林匹克分区联赛复赛试题普及组题一数的计算(20分) 程序名:a01.pas/c/c++问题描述我们要求找出具有下列性质数的个数(包含输入的自然数n):先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理:1.不作任何处理;2.在它的左边加上一个自然数,但该自然数不能超过原数的一半;3.加上数后,继续按此规则进行处理,直到不能再加自然数为止.样例: 输入: 6 输入文件名:input1.txt满足条件的数为 6 (此部分不必输出) 输出文件名:output1.txt6162612636136问题描述输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数条件: 1.P,A是正整数2.要求P,Q以x0为最大公约数,以y0为最小公倍数.试求:满足条件的所有可能的两个正整数的个数.样例输入:x0=3 yo=60 输入文件名:input2.txt输出:4 输出文件名:output2.txt说明(不用输出)此时的P Q 分别为:3 6015 1212 1560 3所以:满足条件的所有可能的两个正整数的个数共4种.分析:1.数学方法枚举:根据数学性质枚举出所有可能,缺点存储量大,复杂度高p:=a*x0 ; q:=b*x0 (a,b互质)x0为其最大公约数p*q=a*x0*b*x0=y0*x0 y0为p,q最小公倍数则y0=a*b*x02.数学方法:p:=a*x0 ; q:=b*x0 (a,b互质)x0为其最大公约数p*q=a*x0*b*x0=y0*x0 y0为p,q最小公倍数则y0=a*b*x0题三求先序排列(30分)程序名:c03.pas/c/c++问题描述给出一棵二叉树的中序与后序排列。
求出它的先序排列。
(约定树结点用不同的大写字母表示,长度<=8)。
1995-2008复赛试题及解析

NOIP1995年复赛试题1. 设有下列的算式:求出□中的数字,并打印出完整的算式来。
8 0 9 ------------- □□) □□□□ □□------------- □□□ □□□ ------------- 12. 方阵填数:在一个N ⨯N 的方阵中,填入1,2,……N ⨯N 个数,并要求构成如下的格式: 例:3. 若将一个正整数化为二进制数,在此二进制数中,我们将数字1的个数多于数字0的个数的这类二进制数称为A 类数,否则就称其为B 类数。
例如:(13)10=(1101)2 其中1的个数为3,0的个数为1,则称此数为A 类数; (10)10=(1010)2 其中1的个数为2,0的个数也为2,称此数为B 类数; (24)10=(11000)2 其中1的个数为2,0的个数为3,则称此数为B 类数; 程序要求:求出1~1000之中(包括1与1000),全部A 、B 两类数的个数。
4.编码问题:设有一个数组A:ARRAY[0..N-1] OF INTEGER ;数组中存放的元素为0~N-1之间的整数,且A[i]≠A[j](当i ≠j 时)。
例如:N=6时,有: A=(4,3,0,5,1,2) 此时,数组A 的编码定义如下: A[0]的编码为0;A[i]的编码为:在A[0],A[1],……A[i-1]中比A[i]的值小的个数(i=1,2……N-1) ∴上面数组A 的编码为:B=(0,0,0,3,1,2)程序要求解决以下问题:给出数组A 后,求出其编码;给出数组A 的编码后,求出A 中的原数据。
5. 灯的排列问题:设在一排上有N 个格子(N ≤20),若在格子中放置有不同颜色的灯,每种灯的个数记为N 1,N 2,……N k (k 表示不同颜色灯的个数)。
放灯时要遵守下列规则:同一种颜色的灯不能分开;不同颜色的灯之间至少要有一个空位置。
例如:N=8(格子数) R=2(红灯数) B=3(蓝灯数) 放置的方法有:N=513 14 15 16 1 12 23 24 17 2 11 22 25 18 3 10 21 20 19 4 9 8 7 6 5N=616 17 18 19 20 1 153****221214 29 36 33 22 3 132****423412 27 26 25 24 5 11 10 9 8 7 6B-R 顺序放置的总数为12种。
NOIP2013复赛模拟8解题报告

NOIP2008模拟试题1(4P24)普及组1.报数(read.pas/c/cpp) OIP2010模拟试题4(4P36)[题目描述]CG同学又弄到一批新牛,新牛到了农场以后,首先要学习汉语,数的朗读成为新牛的一个难题,朗读绝对值小于10亿的数。
新牛们知道汉语中有如下的读数规则:1.首先读符号位,然后读整数部分,整数部分之后可能出现小数点,如果有小数部分则小数点一定出现,并且读出小数点之后读小数部分。
2.符号位的读法是:⑴正数,不论正号”+”是否出现,都不必读出符号位;⑵负数的最左边的符号是”-“,读成”负”(以“F”来表示“负”)。
3.整数部分的读法是:⑴如果整数部分不存在或者整数部分全是零则直接读成“零”(以“0”来表示“零”);⑵否则从整数部分中最左边的非零数字开始读起,然后以十、百、千、万、亿(分别以”S”、”B”、”Q”、”W”、“Y”来表示)等数量单位来拼读整数部分。
4.整数部分中:⑴每一个非零数字都必须结合各个相应的数量单位读出来;⑵每一段连续的“零”只能读成一个“零”,但是某一段连续的“零”的左侧或者右侧不存在非零数字(这里只考虑整数部分)则这一段“零”不应该读出来;5.如果有小数部分,则首先读“点”(以“D”来表示“点”),然后从左至右有顺序地读出各个小数位。
在读小数部分的时候不可以使用十、百、千、万、亿等数量单位;但是小数部分的每一个数字都需要读出来,连续的零不可以读成一个“零”,而应该分别读出。
6.如果数中有小数点而没有小数部分,则不应该把小数点读出来。
例如:-0020030004.567应该读成”F2Q03W04D567”,000.89应该读成”0D89”。
请你编写程序帮助新牛把给定的数正确地读出来。
[输入数据]输入文件仅一行,存放了一个数(不超过50字符),其绝对值小于10亿.[输出数据]输出文件仅一行,输出这个数的正确读法。
[样例输入]-0020030004.567[样例输出]F2Q03W04D567program cz;varst,s,t:string;p,i:integer;beginassign(input,'read.in');reset(input);assign(output,'read.out');rewrite(output);readln(st);if st[1]='-' then begindelete(st,1,1);i:=1;while (i<length(st)) do beginif (st[i]<>'0') then beginwrite('F');break;end;inc(i);end;end;p:=pos('.',st);if (p=0) then p:=length(st);i:=1;while (st[i]='0') and (i+1<p) doinc(i);delete(st,1,i-1);p:=pos('.',st)-1;if (p=-1) then p:=length(st);s:='';i:=(p-1) mod 4+1;while (i>0) and (i<=p) do begint:='';if (i>3) thenif (st[i-3]>'0') thent:=t+st[i-3]+'Q'else if (s<>'') and (s[length(s)]<>'0') thent:=t+'0';if (i>2) thenif (st[i-2]>'0') thent:=t+st[i-2]+'B'else if (t<>'') and (t[length(t)]<>'0') thent:=t+'0';if (i>1) thenif (st[i-1]>'0') thent:=t+st[i-1]+'S'else if (t<>'')and(t[length(t)]<>'0') thent:=t+'0';if (i>0) thenif (st[i]>'0') then t:=t+st[i]+'';if (t[length(t)]='0') then delete(t,length(t),1); if (t<>'') then begins:=s+t;case (p-i) div 4 of1:s:=s+'W';2:s:=s+'Y';end;end;inc(i,4);end;if (s='') then s:='0';write(s);if (pos('.',st)>0)and(length(st)>pos('.',st)) thenwrite('D',copy(st,p+2,length(st)-p-1));writeln;close(input);close(output);end.2.背单词(words)源程序名:words.pas/c/cpp输入文件名:word.in输出文件名:word.out时限:1秒问题描述:英语四级考试临近了,小Y却发现他已经把以前学的单词几乎忘光了。
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普及组解题报告

【输入】 输入文件 group.in 包含 n+2 行: 第 1 行包括一个整数 w,为每组纪念品价格之和的上限。 第 2 行为一个整数 n,表示购来的纪念品的总件数。 第 3~n+2 行每行包含一个正整数 pi(5<=pi<=w),表示所对应纪念品的价格。
字依次表示学号为 j-1 的学生的语文、数学、英语的成绩。每个学生的学号按照输入顺序编号为 1~n(恰好是输入数据的行号减 1)。 所给的数据都是正确的,不必检验。
【输出】 输出文件 scholar.out 共有 5 行,每行是两个用空格隔开的正整数,依次表示前 5 名学生的学号
和总分。
【输入输出样例 l】 scholar.in 6 90 67 80 87 66 91 78 89 91 88 99 77 67 89 64 78 89 98
scholar.out 6 265 4 264 3 258 2 244 1 237
【输入输出样例 2】 scholar.in 8 80 89 89 88 98 78 90 67 80 87 66 91 78 89 91 88 99 77 67 89 64 78 89 98
scholar.out 8 265 2 264 6 264 1 258 5 258
s:integer; begin
s:=a; a:=b;
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
NOI普及组复赛解题报告

N O I P 2 0 1 5 普及组解题报告南京师范大学附属中学树人学校CT1. 金币(coin.cpp/c/pas)【问题描述】国王将金币作为工资,发放给忠诚的骑士。
第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币;这种工资发放模式会一直这样延续下去:当连续N天每天收到N 枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币。
请计算在前K天里,骑士一共获得了多少金币。
【输入格式】输入文件名为coin.in 。
输入文件只有1行,包含一个正整数K,表示发放金币的天数。
【输出格式】输出文件名为coin.out 。
输出文件只有 1 行,包含一个正整数,即骑士收到的金币数。
【数据说明】对于100%的数据,1< K< 10,000。
【思路】模拟【时空复杂度】O(k) ,O(1)2 、扫雷游戏(mine.cpp/c/pas )【问题描述】扫雷游戏是一款十分经典的单机小游戏。
在n行m列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。
玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格。
游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格。
现在给出n行m列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。
注:一个格子的周围格子包括其上、下、左、右、左上、右上、左下、右下八个方向上与之直接相邻的格子。
【输入格式】输入文件名为mine.in 。
输入文件第一行是用一个空格隔开的两个整数n和m分别表示雷区的行数和列数。
接下来n行,每行m个字符,描述了雷区中的地雷分布情况。
字符’* '表示相应格子是地雷格,字符''表示相应格子是非地雷格。
相邻字符之间无分隔符。
【输出格式】输出文件名为mine.out 。
noip2009复赛普及组解题报告

noip2009复赛普及组解题报告多项式输出问题转述:给出一个一元多项式各项的次数和系数,按照规定的格式要求输出该多项式。
分析:普及组的水题。
多项式大家应该很熟悉,输出的时候注意一下几点即可:1. 最高次项为正的话开头无加号。
2. 系数为0不输出。
3. 一次项输出x,并非x^1。
4. 非常数项系数为1或-1时直接输出正负号,但是常数项需要输出该数字。
其中除第三项外其它均可在样例中检查出错误,但是若没想到第三点那么就只能得到50分了。
程序:var i,k,n:longint;beginassign(input,'poly.in');reset(input);assign(output,'poly.out');rewrite(output);readln(n);for i:=n downto 0 dobeginread(k);if k=0 then continue;if (k>0) and (i<>n) then write('+');if i=0 then write(k)else if (abs(k)<>1) then write(k) else if k=-1 then write('-');if i<>0 thenif i=1 then write('x')else write('x^',i);end;writeln;close(input);close(output);end.---------------------------------------------------------------------分数线划定问题转述:给出录取人数及所有面试者成绩,考号。
求出分数线和实际录取人数,并按成绩降序,若成绩相同则考号升序的规则输出录取人考号与成绩。
全国信息学奥林匹克联赛(NOIP2010)复赛_普及组_解题报告(pascal)

全国信息学奥林匹克联赛(NOIP2010)复赛_普及组_解题报告(pascal)全国信息学奥林匹克联赛(NOIP2010)复赛普及组解题报告1.数字统计(two.pas/c/cpp)【问题描述】请统计某个给定范围[L, R]的所有整数中,数字2 出现的次数。
比如给定范围[2, 22],数字2 在数2 中出现了1 次,在数12 中出现1 次,在数20 中出现1 次,在数21 中出现1 次,在数22 中出现2 次,所以数字2 在该范围内一共出现了6次。
【算法思路】枚举法,依次将L至R转化为字符串,查找当中有多少个”2”.【程序代码】program two;varl,r:1..10000;i,j,h,c:longint;s:string;beginassign(input,'two.in');assign(output,'two.out');reset(input);rewrite(output);readln(l,r);c:=0;for i:=l to r dobeginstr(i,s);h:=length(s);for j:=1 to h doif s[j]='2'then c:=c+1;end;writeln(c);close(input);close(output);end.2.接水问题(water.pas/c/cpp)【问题描述】学校里有一个水房,水房里一共装有m 个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为1。
现在有n 名同学准备接水,他们的初始接水顺序已经确定。
将这些同学按接水顺序从1到n 编号,i号同学的接水量为w i。
接水开始时,1 到m 号同学各占一个水龙头,并同时打开水龙头接水。
当其中某名同学j 完成其接水量要求w j 后,下一名排队等候接水的同学k马上接替j 同学的位置开始接水。
这个换人的过程是瞬间完成的,且没有任何水的浪费。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【输入输出样例】
seat.in 45123 4243 2333 2524 【输入输出样例解释】
识别码的计算方法如下: 首位数字乘以 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 号码。
seat.out 2 24
4 3
2 1
1
**
※
※+
+
23
4
5
上图中用符号*、※、+ 标出了 3 对会交头接耳的学生的位置,图中 3 条粗线的 位置表示通道,图示的通道划分方案是唯一的最佳方案。
3.传球游戏
(ball.pas/c/cpp)
【问题描述】 上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着
【输入】 输入文件 ball.in 共一行,有两个用空格隔开的整数 n,m(3<=n<=30,1<=
m<=30)。 【输出】
输出文件 ball.out 共一行,有一个整数,表示符合题意的方法数。
【输入输出样例】 ball.in 33
ball.out 2
【限制】 40%的数据满足:3<=n<=30,1<=m<=20 100%的数据满足:3<=n<=30,1<=m<=30
【输入输出样例 1】 isbn.in 0-670-82162-4
isbn.out Right
【输入输出样例 2】 isbn.in 0-670-82162-0
isbn.out 0-670-82162-4
2.排座椅
(seat.pas/c/cpp)
【问题描述】 上课的时候总有一些同学和前后左右的人交头接耳,这是令小学班主任十分
立体图中,定义位于第(m,1)的格子(即第 m 行第 1 列的格子)上面自底向 上的第一块积木(即最下面的一块积木)的左下角顶点为整张图最左下角的点。
【输入】
输入文件 drawing.in 第一行有用空格隔开的两个整数 m 和 n,表示有 m*n 个 格子(1<=m,n<=50)。
接下来的 m 行,是一个 m*n 的矩阵,每行有 n 个用空格隔开的整数,其中 第 i 行第 j 列上的整数表示第 i 行第 j 列的格子上摞有多少个积木(1<=每个格子 上的积木数<=100)。 【输出】
procedure fclose; begibegin flink; readln(s);// 输入字符串
j:=0; i:=1; ans:=0; while j<9 do
begin if s[i] in ['0'..'9'] then//如果是数字,那么累加到 ans 中,共 9 个
头疼的一件事情。不过,班主任小雪发现了一些有趣的现象,当同学们的座次确 定下来之后,只有有限的 D 对同学上课时会交头接耳。同学们在教室中坐成了 M 行 N 列,坐在第 i 行第 j 列
的同学的位置是(i,j),为了方便同学们进出,在教室中设置了 K 条横向的通 道,L 条纵向的通道。于是,聪明的小雪想到了一个办法,或许可以减少上课时 学生交头接耳的问题:她打算重新摆放桌椅,改变同学们桌椅间通道的位置,因 为如果一条通道隔开了两个会交头接耳的同学,那么他们就不会交头接耳了。
数字 begin inc(j); inc(ans,(ord(s[i])-ord('0'))*j); end;
inc(i); end; ans:=ans mod 11;计算识别码 if ans=10 then ch:='X' else ch:=chr(ord('0')+ans);//把识别码转换成 字符,方便输出 if s[length(s)]=ch then write('Right') else write(copy(s,1,12)+ch);//输出正确的识别码 fclose; end. 二、排座椅 用的是赛前集训时提到的贪心,当时说某些题目用贪心可以得部分分,但是本题 贪心可以得满分的。 当然本题的贪心需要预处理下,开 2 个一维数组,row[i]录如果在第 i 行加通道, 可以分割多少对调皮学生,col[i]记录如果在第 j 列加通道,可以分割多少对调 皮学生,最后贪心法输出分割学生最多的前 K 行和前 L 列。 参考程序: program seat;
Noip2008 普及组解题报告 一、ISBN 号码
基础字符串处理题,心细一点的基本都能得满分。 参考程序: program isbn; const
inp='isbn.in'; oup='isbn.out';
var i,j,k,ans:longint; s:string; ch:char;
procedure flink; begin assign(input,inp); reset(input); assign(output,oup); rewrite(output); end;
seat.in seat.out
1秒
10 10
全文比较 传统
传球游戏 ball ball
ball.in ball.out
1秒
10 10
全文比较 传统
立体图 drawing drawing drawing.in drawing.out
1秒
10 10
全文比较 传统
二.提交源程序文件名
对于 pascal 语 isbn.pas
【输入】 输入文件 isbn.in 只有一行,是一个字符序列,表示一本书的 ISBN 号码(保
证输入符合 ISBN 号码的格式要求)。
【输出】 输出文件 isbn.out 共一行,假如输入的 ISBN 号码的识别码正确,那么输出
“Right”,否则,按照规定的格式,输出正确的 ISBN 号码(包括分隔符“-”)。
言
对于 C 语言 gcc –o isbn gcc –o seat
isbn.c
seat.c
对于 C++语言 g++ –o isbn g++ –o seat
isbn.cpp
seat.cpp
fpc ball.pas
gcc –o ball ball.c
g++ –o ball ball.cpp
fpc drawing.p as
+---+
/ /| 高 +---+ | | |+ | |/ 宽 +---+ 长
每个顶点用 1 个加号’+’表示,长用 3 个”-“表示,宽用 1 个”/”表示,高用两 个”|”表示。字符’+’ ‘-‘’/’ ‘|’的 ASCII 码分别为 43,45,47,124。字符’.’(ASC II 码 46)需要作为背景输出,即立体图里的空白部分需要用’.’代替。立体图的画 法如下面的规则:
若两块积木左右相邻,图示为: ..+---+---+ ./ / /| +---+---+ | | | |+ | | |/. +---+---+..
若两块积木上下相邻,图示为: ..+---+ ./ /| +---+ | | |+ | |/| +---+ | | |+ | |/. +---+..
若两块积木前后相邻,图示为: ….+---+ …/ /| ..+---+ | ./ /| + +---+ |/. | | +.. | |/… +---+….
Qi,表示坐在位置(Xi,Yi)与(Pi,Qi)的两个同学会交头接耳(输入保证他们前后相 邻或者左右相邻)。
输入数据保证最优方案的唯一性。
【输出】 输出文件 seat.out 共两行。 第一行包含 K 个整数,a1a2……aK,表示第 a1 行和 a1+1 行之间、第 a2 行和
第 a2+1 行之间、…、第 aK 行和第 aK+1 行之间要开辟通道,其中 ai< ai+1,每两 个整数之间用空格隔开(行尾没有空格)。
全国信息学奥林匹克联赛(NOIP2008)复赛
普及组
一.题目概览 中文题目名称 英文题目名称 可执行文件名 输入文件名 输出文件名 每个测试点时
限 测试点数目 每个测试点分
值 比较方式 题目类型
ISBN 号码 isbn isbn
isbn.in isbn.out
1秒
10 10
全文比较 传统
排座椅 seat seat
gcc –o drawin g
drawing.c g++ –o drawing drawing.cpp
四.运行内存限制
运行内存上限