2010noip提高组乌龟棋题解

合集下载

NOIP初赛试题提高组C语言

NOIP初赛试题提高组C语言

2.已知 a, b, c, d, e, f, g 七个人中, a 会讲英语; b 会讲英语和汉语; c 会讲英语、意大利语和俄语; d 会讲汉语和日语; e 会讲意大利语和德语; f 会讲俄语、日语和法语; g 会讲德语和法语。

能否将他们的座位安排在圆桌旁,使得每个人都能与他身边的人交谈?如果可以,请以“ a b ”开头写出你的安排方案: 。

.答: a b d f g e c第十一届(2005)a-b-d-fc-e-g-f g-e-c-f第十二届(2006)三.问题求解(共 2 题,每题 5 分,共计10 分)1.将2006 个人分成若干不相交的子集,每个子集至少有3 个人,并且:(1)在每个子集中,没有人认识该子集的所有人。

(2)同一子集的任何 3 个人中,至少有2 个人互不认识。

(3)对同一子集中任何 2 个不相识的人,在该子集中恰好只有 1 个人认识这两个人。

则满足上述条件的子集最多能有___________个?分析:要使子集数最多,每一子集的人数应最少。

每一子集的人数为3,不符合要求,为4也不符合要求,为5可符合要求。

2.将边长为n 的正三角形每边n 等分,过每个分点分别做另外两边的平行线,得到若干个正三角形,我们称为小三角形。

正三角形的一条通路是一条连续的折线,起点是最上面的一个小三角形,终点是最下面一行位于中间的小三角形。

在通路中,只允许由一个小三角形走到另一个与其有公共边的且位于同一行或下一行的小三角形,并且每个小三角形不能经过两次或两次以上(图中是n=5 时一条通路的例子)。

设n=10,则该正三角形的不同的通路的总数为_____________。

分析与解:如果n=2,存在的不同的通路总数为1如果n=3,存在的不同的通路总数为2=1*2=2!如果n=4,存在的不同的通路总数为6=1*2*3=3!如果n=5,存在的不同的通路总数为24=1*2*3*4=4!……如果n=10,存在的不同的通路总数为9!第十三届(2007)三.问题求解(共2 题,每题5 分,共计10 分)1.给定n 个有标号的球,标号依次为1,2,…,n。

复赛noip2010提高组题解[新版]

复赛noip2010提高组题解[新版]

1.translate(20分)简单模拟。

开一个1000的队列,时刻保持队列长度不大于M,每次接受翻译请求时,先在队列中查找,查找失败则将单词加入队列。

查找使用Hash则为O(N),直接扫描O(MN),都在可接受范围内。

考试时只打了20分,原因至今不明,告诫大家对于水题不要多想,就像这道题最好不开hash,因为一个系统的可靠度是该系统所有子系统可靠度之积,程序越复杂越可能出错。

4.tortoise(50分)基础动规。

可以从题目背景中抽象出这样的问题:有一四维立方体(这里的立方体棱长不必相等,每一维对应一种卡片,每维的棱长对应该种卡片个数),每走一格(即使用一张卡片)的收益是当前位置坐标的函数。

求从(0,0,0,0)走到(a1,a2,a3,a4)最大收益。

故有方程f[x,y,z,t]=max{f[x-1,y,z,t], f[x,y-1,z,t], f[x,y,z-1,t], f[x,y,z,t-1]} + w[1 + x + y*2 + z*3 + t*4]目标状态: f[a1,a2,a3,a4]O(b^4)的代价,数据保证b<=40,完全满足要求5.prison(70分)问题可以重新描述为:寻找最小的冲突值c,使得存在一种方案,将原图分为两部分,并去掉这两部分之间的所有边后,余下的边权都不大于c。

对于这个问题我们可以二分查找c,并判定其可行性。

判定可行性的方法至今没想好。

考试的时候我是用并查集,将所有与u相连并与u之间边权大于c的点(设为点集Zu)必然不与u在同一集合中,枚举所有的u,每次将Zu合并成为一个集合,若存在某点u和Zu某个点处于同一个集合中,则c不可行,反之则可行。

但这种方法貌似存在bug,能拿70分。

如果把并查集合并查找的时间代价看作常数,则这种做法的时间代价为O(elogK),e是边数,K为最大的冲突值。

6.flow(100分)先用floodfill预处理出上方的每个格子能覆盖到下方的格子,构造一个布尔矩阵,行下标表示最上方的某个点,列下标表示最下方的某个点,矩阵对应点的值表示相应两个点的覆盖关系。

noip2010复赛试题提高组

noip2010复赛试题提高组

全国信息学奥林匹克联赛(NOIP2010)复赛提高组(请选手务必仔细阅读本页内容)一.题目概况中文题目名称机器翻译乌龟棋关押罪犯引水入城英文题目与子目录名 translate tortoise prison flow 可执行文件名 translate tortoise prison flow 输入文件名 translate.intortoise.in prison.in flow.in 输出文件名 translate.outtortoise.outprison.out flow.out 每个测试点时限1秒1秒1秒1秒测试点数目 10 10 10 10 每个测试点分值 10 10 10 10 附加样例文件有有有有结果比较方式全文比较(过滤行末空格及文末回车)题目类型传统传统传统传统二.提交源程序文件名对于pascal语言 translate.pas tortoise.pas prison.pas flow.pas 对于C语言 translate.c tortoise.c prison.c flow.c 对于C++语言 translate.cpp tortoise.cpp prison.cpp flow.cpp 三.编译命令(不包含任何优化开关)对于pascal语言fpc translate.pas fpc tortoise.pas fpc prison.pas fpc flow.pas对于C语言gcc -o translatetranslate.c -lm gcc -o tortoisetortoise.c -lmgcc -o prisonprison.c -lmgcc -o flowflow.c -lm对于C++语言g++ -o translatetranslate.cpp -lm g++ -o tortoisetortoise.cpp -lmg++ -o prisonprison.cpp -lmg++ -o flowflow.cpp -lm四.运行内存限制内存上限128M 128M 128M 128M注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。

乌龟棋 (NOIP2010)复赛 提高组 试题二 解题代码

乌龟棋 (NOIP2010)复赛 提高组 试题二 解题代码

乌龟棋(NOIP2010)复赛提高组试题二解题代码分类:C/C++解题代码2011-07-23 18:56 271人阅读评论(2) 收藏举报view plaincopy to clipboardprint?1. /*2. 全国信息学奥林匹克联赛(NOIP2010)复赛提高组第二题3. 【问题描述】4. 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。

5. 乌龟棋的棋盘是一行N 个格子,每个格子上一个分数(非负整数)。

棋盘第1 格是唯一6. 的起点,第N 格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。

7. ……8. 1 2 3 4 5 …… N9. 乌龟棋中M 张爬行卡片,分成4 种不同的类型(M 张卡片中不一定包含所有4 种类型10. 的卡片,见样例),每种类型的卡片上分别标有1、2、3、4 四个数字之一,表示使用这种卡11. 片后,乌龟棋子将向前爬行相应的格子数。

游戏中,玩家每次需要从所有的爬行卡片中选择12. 一张之前没有使用过的爬行卡片,控制乌龟棋子前进相应的格子数,每张卡片只能使用一次。

13. 游戏中,乌龟棋子自动获得起点格子的分数,并且在后续的爬行中每到达一个格子,就得到14. 该格子相应的分数。

玩家最终游戏得分就是乌龟棋子从起点到终点过程中到过的所有格子的15. 分数总和。

16. 很明显,用不同的爬行卡片使用顺序会使得最终游戏的得分不同,小明想要找到一种卡17. 片使用顺序使得最终游戏得分最多。

18. 现在,告诉你棋盘上每个格子的分数和所有的爬行卡片,你能告诉小明,他最多能得到19. 多少分吗?20. 【输入】21. 输入文件名tortoise.in。

输入文件的每行中两个数之间用一个空格隔开。

22. 第1 行2 个正整数N 和M,分别表示棋盘格子数和爬行卡片数。

23. 第2 行N 个非负整数,a1, a2, ……, aN,其中ai 表示棋盘第i 个格子上的分数。

24. 第3 行M 个整数,b1,b2, ……, bM,表示M 张爬行卡片上的数字。

历年NOIP提高组试题难度列表

历年NOIP提高组试题难度列表
NOIP2008-C
NOIP2008-D
NOIP2009-A
NOIP2009-B
火柴棒等式 模拟
传纸条 双栈排序
动态 规划
构造
潜伏者 模拟
Hankson的 趣味题
数学
枚举,优化/开表 0.8
历届搜索
题一般都比较
多维状态DP 0.7 难,搜索算法
本身简单,于
枚举,贪心/二分 图
0.4
是题目会提高
选手对其他方
模拟
【构造】
动态 规划
构 造, 贪心
多维DP
BFS/贪心,并查 集
平均难度系 数:0.27
构造类题 目一般没有明 确的算法,需
NOIP2010-D
引水入城
搜索 BFS
要选手仔细分 析题目的实
质,并得出解法。
这个解法通常不是唯一的。有时一个好的贪心可以得相当
多的分。有时搜索剪枝可以很大的提高效率。同样以多得分为
需要掌握
模拟,字符串
质数及其性 0.8 质,基础的实
子序列DP,贪心 优化
0.2
数操作,加法 原理和乘法原
置换群,贪心 0.2 理。此类题需
字符串,抽样检 测,表达式
区间环DP
要选手对数学 0.3 规律的灵感。
【图论】 0.6 平均难度系
资源分配DP,构 造
0.6
数:0.50 历届考察
模拟
动态规划/组合 数学,高精度
金明的预算 动态
方案
规划
作业调度方 案
模拟
2^k进制数
动态 规划
统计数字 模拟
字符串的展 开
模拟
矩阵取数游 动态

规划
树网的核 图论

NOIP2010题解

NOIP2010题解
首先,第一题是四道题中最简单的,直接写代码,注意一些细节就可以了, 一百分也是一定要拿到手的,因为后面的分都不是很好拿。 然后是第二题,第二题就要用动态规划了,可以用最朴素的BFS来过那30% 的比较弱的数据,用最朴素的动态规划只能拿到50%左右的分,需要对动态规 划的状态进行优化,方可拿到一百分。 对于第三题,用搜索很快可拿30,代码复杂度也极低,看到规律的枚举 +BFS(floodfill)拿80分,会优化的二分(二分枚举)+BFS拿满分,只是代 码稍微麻烦些,或者有思路的用贪心+并查集也可拿满分,代码也要比二分 +BFS简单一点。 然后关于本题,数据的反复查找与读取很耗时,想不超时的一些同学需要考 虑图论中无向联通图的存储方式,邻接矩阵和完善的静态邻接表直接爆内存零 分,所以只能用动态邻接表或者双链表,笔者偷懒,用的不完善静态链表+直 接查找数据……所以,学学动态邻接表和双链表存储图看来迫在眉睫…… 最后是第四题,思路比较难,搜索的可以稳拿拿到30分,没有思路就搜索 吧。分析过后可以发现最后一题就是一个搜索+“线段覆盖”问题,对于搜索, 本体其实用DFS会比BFS快很多,对于“线段覆盖”,用动规解决就好了。
总分
400 380 340 330 320 310 300 300 290 280 280 270 270 260 260 260 260 250 250 250 240 240 240
姓名
徐明昭 张硕基 徐子尧 崔灏 田博 李光谱 吕诚 魏鑫鼎 马龙 李昭 吴文彬 李金培 李栋 李昂 杨帅 李怡君 杨东 王子晗 谢志聪 周梦溪 苏畅 许可 常泽昊
240 240 240 240 240 240 230 230 230 230 230 230 220 210 210 210 210 210 200 200

CCF NOIP2010提高组(C语言)参考答案

CCF NOIP2010提高组(C语言)参考答案
1.①num <= 2(或num < 3或num == 2)
②go(LEFT_TO_RIGHT)
③pos[i] == LEFT(或LEFT == pos[i])
④time[i] + go(RIGHT_TO_LEFT)(或go(RIGHT_TO_LEFT) + time[i])
⑤pos[i] = LEFT
1.yyxy xx yyxy xyx xx xyx
2.12
3.18
四、阅读程序写结果(共4题,每题7分,共计28分)
1.16
2.1 2 3 5 6 7 9 10 14
3.4
4.1 6 9 5 4 8 3 2 7
五、完善程序(第1空2分,其余10空,每空2.5分,共计27分)
(说明:以下各程序填空可能还有一些等价的写法,各省可请本省专家审定和上机验证,不一定上报科学委员会审查)
⑥i - m
CCF NOIP2010提高组(C语言)参考答案与评分标准
一、单项选择题(共10题,每题1.5分,共计15分)
1
2
3
4
5
6
7
8
9
10
C
A
A
Dቤተ መጻሕፍቲ ባይዱ
B
D
C
B
C
B
二、不定项选择题(共10题,每题1.5分,共计15分,多选或少选均不得分)
1
2
3
4
5
6
7
8
9
10
ACD
AD
ABD
AC
B
B
D
D
BCD
ABC
三、问题求解(共3题,每题5分,共计15分)
本小题中,LEFT可用1代替,LEFT_TO_RIGHT可用1代替,RIGHT_TO_LEFT可用0代替。

深入Noip2010初赛试题和全解

深入Noip2010初赛试题和全解

作者:钟野梓序今年Noip2010初赛刚结束,网上便铺天盖地地响起了“今年初赛好容易”“分数线一定很高,怎么办……”之类的声音。

确实,自2008年起,Noip初赛难度确有逐年下降的趋势,然而这并不是出题水平降低的缘故,相反,我认为这是中国计算机协会(下称CCF)对于N oip考核目的的审视和改变所导致的必然结果。

因此,我试图通过深入解析本届Noip初赛试囗题,来探寻这种变化下面深层的规律,从而令信息学竞赛选手能更好地备战往后数届的Noip初赛,让初赛不再成为一个问题。

由于条件所限,本文仅以Pascal语言的提高组试囗题作为对象进行分析,相对于普及组而言提高组试囗题一向具有较高的难度和较好的区分度,作为研究对象是个很好的选择;至于说语言的选择,仅是因为笔者个人选择原因。

一、概况本届题目在设置方面与往年相似,由选择题(普及组仅有单项选择题,提高组则有单项选择题与不定项选择题)、问题求解、阅读程序写结果及完善程序四大部分组成;但值得注意的是,今年提高组试囗题的分值设计与往年出现了较大的不同,除了选择题仍然是30分(15分单项+15分不定项),其余部分分值均发生了变化,其中问题求解由10分上升到15分,阅读程序由32分下降到28分,完善程序由28分下降到27分。

由于是第一年实行这种分值,目前暂时无法定言背后的含义,然而或许CCF在初赛更加重视选手的数学素质,而弱化了对于阅读程序能力的考察。

众所周知,阅读程序的能力并不能非常真实地反映选手的程序能力,并且纵观近几年的阅读程序题已没有了什么新意,这也可看做是一个“求新求变”的信号。

至于试囗题整体难度方面较上年有了明显下降,其中问题求解第一题可以看做是考察选手的语文水平,而阅读程序更是没有了以往的“死算”题(即给定若干常数,在程序中设置一系列运算过程,让选手进行阅读计算类型的题目),完善程序给定的源代码风格良好,第二题竟然还加上了注释,这不能不说就是一种降低难度的举动。

Noip2010 第2题 tortoise 乌龟棋

Noip2010 第2题 tortoise 乌龟棋

Noip2010 第2题 tortoise 乌龟棋【题意分析】乌龟从1号格子出发,爬行至第n 号格子,它可以连续走1步、2步、3步、4步。

当它停留在第i 号格子时,可以获得奖励才c[i],已知一共要走a1个1步、a2个2步、a3个3步、a4个4步,问怎样安排顺序使得获得的奖励最多【输入】9 5 第1行 两个整数n 、m ,分别为地图长度及卡片个数6 10 14 2 8 8 18 5 17 第2行 n 个整数,表示每个格子的奖励数1 3 12 1 第3行 m 个整数,表示m 张卡片上的数字【输出】73 获得的最大奖励数【样例分析】小明使用爬行卡片顺序为 1,1,3,1,2,得到的分数为 6+10+14+8+18+17=73。

【分析】很显然这是一个动态规划题目,对于每一个停留位置所能获得的累积奖励,只与上一个停留位置的累计奖励有关,于是需要记录位置。

另外,要确定与上一停留位置的关系,还需要记录下每种卡片的剩余个数。

考虑用f[i, a1, a2, a3, a4]表示停留在i 位置用掉的各种卡片数分别为a1、a2、a3、a4时的最大奖励数。

这样,空间复杂度较大。

又注意到题目中说输入数据保证 N-1=∑=m1i bi ,所以想到i 可以用a1、a2、a3、a4表示,所以简化为f[a1, a2, a3, a4]表示用掉的各种卡片数分别为a1、a2、a3、a4时的最大奖励数。

可得方程:f[a1, a2, a3, a4] = max ( f[a1-1, a2, a3, a4] f[a1, a2-1, a3, a4]f[a1, a2, a3-1, a4] f[a1, a2, a3, a4-1]) + c[step]step 为当前停留位置,step = a1 + 2*a2+ 3*a3 + 4 * a4 + 1【代码】Program tortoise;Constinfile = 'tortoise.in';outfile = 'tortoise.out';Vara: Array[1..4] Of Longint;i, m, n, c: Longint;map: Array[1..350] Of Longint;f: Array[0..40, 0..40, 0..40, 0..40] Of Longint;Function max(x, y: Longint): longint;BeginIf x > y Then Exit(x);Exit(y);End;Procedure work(n1, n2, n3, n4: Longint); //求f[n1, n2, n3, n4]Varstep: Longint;BeginIf n1 > 0 Then BeginIf f[n1-1, n2, n3, n4] = 0 Then work(n1-1, n2, n3, n4); //递归f[n1, n2, n3, n4] := max(f[n1, n2, n3, n4], f[n1-1, n2, n3, n4]);End;If n2 > 0 Then BeginIf f[n1, n2-1, n3, n4] = 0 Then work(n1, n2-1, n3, n4); //递归f[n1, n2, n3, n4] := max(f[n1, n2, n3, n4], f[n1, n2-1, n3, n4]);End;If n3 > 0 Then BeginIf f[n1, n2, n3-1, n4] = 0 Then work(n1, n2, n3-1, n4); //递归f[n1, n2, n3, n4] := max(f[n1, n2, n3, n4], f[n1, n2, n3-1, n4]);End;If n4 > 0 Then BeginIf f[n1, n2, n3, n4-1] = 0 Then work(n1, n2, n3, n4-1); //递归f[n1, n2, n3, n4] := max(f[n1, n2, n3, n4], f[n1, n2, n3, n4-1]);End;step := 1 + n1 + 2 * n2 + 3 * n3 + 4 * n4; //求出当前位置f[n1, n2, n3, n4] := f[n1, n2, n3, n4] + map[step];End;BeginAssign(input, infile);Reset(input);Assign(output, outfile);Rewrite(output);ReadLn(n, m);For i:=1 To n Do Read(map[i]);ReadLn;Fillchar(a, SizeOf(a), 0);For i:=1 To m Do BeginRead(c);Inc(a[c]);End;Fillchar(f, SizeOf(f), 0);f[0, 0, 0, 0] := map[1]; //一张卡片都未用,即停留在1号格子时work(a[1], a[2], a[3], a[4]);WriteLn(f[a[1], a[2], a[3], a[4]]);Close(input);Close(output);End.。

NOIP2010提高组初赛试题及详细解析

NOIP2010提高组初赛试题及详细解析

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

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

)1.与十六进制数 A1.2等值的十进制数是()A.101.2 B.111.4 C.161.125 D.177.252.一个字节(byte)由()个二进制组成。

A.8 B.16 C.32 D.以上都有可能3.以下逻辑表达式的值恒为真的是()。

A.P∨(┓P∧Q)∨(┓P∧┓Q) B.Q∨(┓P∧Q)∨(P∧┓Q)C.P∨Q∨(P∧┓Q)∨(┓P∧Q) D.P∨┓Q∨(P∧┓Q)∨(┓P∧┓Q)4.Linux下可执行文件的默认扩展名是( )。

A. exeB. comC. dllD. 以上都不是5.如果在某个进制下等式7*7=41成立,那么在该进制下等式12*12=()也成立。

A. 100B. 144C. 164D. 1966.提出“存储程序”的计算机工作原理的是()。

A. 克劳德•香农B. 戈登•摩尔C. 查尔斯•巴比奇D. 冯•诺依曼7.前缀表达式“+ 3 * 2 + 5 12 ”的值是()。

A. 23B. 25C. 37D. 6 58.主存储器的存取速度比中央处理器(CPU)的工作速度慢的多,从而使得后者的效率受到影响。

而根据局部性原理,CPU所访问的存储单元通常都趋于一个较小的连续区域中。

于是,为了提高系统整体的执行效率,在CPU中引入了( )。

A.寄存器 B.高速缓存 C.闪存 D.外存9.完全二叉树的顺序存储方案,是指将完全二叉树的结点从上到下、从左到右依次存放到一个顺序结构的数组中。

假定根结点存放在数组的1号位置上,则第k号结点的父结点如果存在的话,应当存放在数组中的()号位置。

A.2k B.2k+1 C.k/2下取整 D.(k+1)/210.以下竞赛活动中历史最悠久的是()。

NOIP2010提高组解题报告

NOIP2010提高组解题报告

NOIP2010解题报告(提高组)Translate开一个队列进行模拟就行了。

PS:这题数据比较厚道,按照题目的描述来说,单词的编号是非负整数,也就是说可以是0。

但是数据中并没有0,否则就要有很多人要降10分了。

Tortoise动态规划。

用F[i1,i2,i3,i4]表示数字1的卡片取了i1张,数字2的卡片取了i2张,数字3的卡片取了i3张,数字4的卡片取了i4张,可以取得最大的分数。

写起来很好写,四个for,再加上四个if。

F[i1,i2,i3,i4]=max(F[i1-1,i2,i3,i4],F[i1,i2-1,i3,i4],F[i1,i2, i3-1,i4],F[i1,i2,i3,i4-1])+score[1+i1+i2*2+i3*3+i4*4]PS:这题用120*40*40*40,350*40*40*40的算法都是可以的。

Prison二分+二分图判定\并查集解法1:先二分答案,然后进行二分图的判定。

判定方法如下:首先取一个没有走过的结点放在了左图,然后把和这个点有边的点放在右图,然后再把和这些右图有边的点放在左图,一直下去,知道把所有点都放好,或者出现矛盾为止。

解法2:把边权从大到小排一次序,依次插入。

用并查集维护这些边之间有没有矛盾。

详情看并查集经典例题:PKU1182食物链。

Flow[(floodfill\动态规划\各种乱搞算法)+(贪心+动态规划\各种乱搞算法)]\最短路显然第一问一次O(NM)的floodfill就可以求出是否可以到达全部最后一层的格子。

现在假设最后一行的所有格子都可以到达。

定理1:从第一行的格子,可以到达的最后一行的格子必然是连续的一段。

证明1:假设格子A可以到达的最后一行中间有部分格子不可到达。

由题设可知,必有另一个格子B可以到达这些A不可到达的格子。

但是,显然A到达下面格子的路径必然与B到达这些A不可到达的格子的路径有重合部分,所以,A也能到达下面的A到达不了的格子。

NOIP2010复赛提高组题解加程序

NOIP2010复赛提高组题解加程序

。0001≤0�001≤0 有据数的%001 于对 。5≤N�1=M 有据数的%01 于对 】围范据数【
6
组高提
462 8 87 11 87 11 87 11 428 8 01 2 tuo.etalsnart ni.etalsnart 】2 例样出输入输【 页 7 共 页 3 第 赛复�0102PION�赛联克匹林奥学息信国全 页换
。典词次 5 了查计共 。2 词单代替存内入调并 1 词单找查�1 4 5 �7 。4 词单到找中存内在�4 5 2 �6 。1 词单代替存内入调并 4 词单找查�4 5 2 �5 。存内入调并 5 词单找查�5 2 1 �4 。1 词单到找中存内在�2 1 �3 。存内入调并 2 词单找查�2 1 �2 。存内入调并 1 词单找查�1 �1 。空为态状始初存内�空 �况状存内的后译翻次本为前号冒�译翻的词单个一示表行每�下如程过典字查个整 】明说 1 例样出输入输【 5 1 4 4 5 1 2 1 7 3
esiotrot o- ++g ml- ppc.etalsnart etalsnart o- ++g 言语++C 于对 ml- c.wolf wolf o- ccg ml- c.nosirp nosirp o- ccg ml- c.esiotrot esiotrot o- ccg ml- c.etalsnart etalsnart o- ccg 言语 C 于对 sap.wolf cpf sap.nosirp cpfsap.esiotrot cpfsap.etalsnart cpf 言语 lacsap 于对 �关开化优何任含包不�令命译编�三 ppc.wolf ppc.nosirp ppc.esiotrot ppc.etalsnart 言语++C 于对 c.wolf c.nosirp c.esiotrot c.etalsnart 言语 C 于对 sap.wolf sap.nosirp sap.esiotrot sap.etalsnart 言语 lacsap 于对 名件文序程源交提�二 统传 统传 统传 统传 型类目题 �车回末文及格空末行滤过�较比文全 式方较比果结 有 有 有 有 件文例样加附 01 01 01 01 值分点试测个每 01 01 01 01 目数点试测 秒 1 秒 1 秒 1 秒 1 限时点试测个每 tuo.wolf tuo.nosirp tuo.esiotrot tuo.etalsnart 名件文出输 ni.wolf ni.nosirp ni.esiotrot ni.etalsnart 名件文入输 wolf nosirp esiotrot etalsnart 名件文行执可 wolf nosirp esiotrot etalsnart 名录目子与目题文英 城入水引 犯罪押关 棋龟乌 译翻器机 称名目题文中 况概目题�一 �容内页本读阅细仔必务手选请� 组高提

冲刺NOIP2010模拟试题五

冲刺NOIP2010模拟试题五

冲刺NOIP2010模拟试题五(提高组复赛)无穷的序列(seq)【问题描述】有一个无穷序列如下:110100100010000100000…请你找出这个无穷序列中指定位置上的数字【输入】第一行一个正整数N,表示询问次数;接下来的N行每行一个正整数Ai,Ai表示在序列中的位置。

【输出】N行,每行为0或1,表示序列第Ai位上的数字。

【输入样例】431476【输出样例】1【数据范围】对于100%的数据有N≤1500000,Ai≤10^9汤姆斯的天堂梦(par)【问题描述】汤姆斯生活在一个等级为0的星球上。

那里的环境极其恶劣。

每天12小时的工作和成堆的垃圾让人忍无可忍。

他向往着等级为N的星球上天堂般的生活。

有一些航班将人从低等级的星球送上高一级的星球,有时需要向驾驶员支付一定金额的费用,有时却又可以得到一定的金钱。

汤姆斯预先知道了从0等级星球去N等级星球的所有的航线和所需支付(或者可以得到)的金钱,他想找一条价格最低(甚至获得金钱最多)的航线。

【输入】第一行第一个正整数N(N≤100),接下来的数据可分为N个段落。

每段的第一行一个整数Ki(Ki≤100),表示等级为i的星球有Ki个。

接下来的Ki中第Tij行依次表示与等级为i,编号为j的星球相连的等级为i-1的星球的编号和此航线需要的费用(正数表示支出,负数表示收益,费用的绝对值不超过1000)。

每行以0结束,每行的航线数≤100。

【输出】输出所需(或所得)费用。

正数表示支出,负数表示收益。

【输入样例】321 15 01 5 031-52 10 01 3 02 40 021 12 53 -5 02-19 3-20 0【输出样例】-1【数据范围】对于100%的数据N≤100 Ki≤100。

【样例解释】如图克鲁斯的加减法(plus)【问题描述】奶牛克鲁斯认为人类的加法算式太落后了。

比如说有时候想要用加法计算+15*3.,只能写成+15+15+15。

真是浪费精力啊!于是,克鲁斯决定开发出一种新的加法算式。

NOIp06-15题解分析

NOIp06-15题解分析

NOIp 20101.机器翻译:队列模拟,送分题2.乌龟棋:裸的dp,我在vijos上使用最裸的O(abcd)算法通过3.关押罪犯:我用的是二分答案+二分图染色判断。

(宽搜时STL的queue常数巨大,换了手写队列就过了。

)4.引水入城:Flood Fill、搜索+动态规划。

比较麻烦。

NOIp 20111.铺地毯:模拟,送分题2.选择客栈:枚举+优化3.Mayan游戏:搜索[+语文水平+心理素质]4.计算系数:组合数学题。

5.聪明的质检员:二分+前缀和优化6.观光公交:贪心(或费用流)NOIp 20121.Vigenère密码:字符串处理。

送分题。

2.国王游戏:贪心。

证明并不非常简单(反证法+交换相邻元素)。

(但是考场上可以猜、试出贪心规则)3.开车旅行:倍增+递推。

4.同余方程:裸数学题5.借教室:二分(或线段树卡常)6.疫情控制:二分答案+倍增+递推NOIp 20131.转圈游戏:快速幂2.火柴排序:贪心(同样也是证明稍烦,但结论很容易猜出)+求逆序对个数3.货车运输:最大生成树+树上求路径最小值(树剖或倍增之类的)(反证法证明)4.积木大赛:贪心5.花匠:离散化+DP求拐点+线段树优化(复杂度O(nlogn),据说存在O(n)做法)6.华容道:最短路,通过一些奇异的方法转化NOIp 20141.生活大爆炸版石头剪刀布:模拟即可2.联合权值:dfs+数学优化3.飞扬的小鸟:DP(类似背包问题)4.无线网路发射器选址:搜索,注意边界即可5.寻找道路:反向建图,两遍DFS或BFS即可6.解方程:数学题,方程取模+黑科技常数优化NOIp 20151.神奇的幻方:模拟(听说有人手推打表233332.信息传递:限制出度为1的最小环,Tarjan或者BFS均可3.斗地主:30分很好骗。

dfs和状压dp似乎(理论上)均可(常数原因需要一定优化)4.跳石头:二分答案5.字串:DP+滚存优化6.运输计划:二分答案+路径求交(事实上本题存在O(n)做法,本题又是卡常的题)noip2013day1题1:二分幂,没什么好讲的了。

冲刺NOIP2010模拟试题与解析(十五)

冲刺NOIP2010模拟试题与解析(十五)

NOIP 提高组复赛模拟题(一)1.中位数(median .pas/c/cpp )【问题描述】给出1~n 的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b 。

中位数是指把所有元素从小到大排列后,位于中间的数。

【文件输入】第一行为两个正整数n 和b ,第二行为1~n 的排列。

【文件输出】输出一个整数,即中位数为b 的连续子序列个数。

【样例输入1】 5 4 1 2 3 4 5 【样例输出1】 2 【样例输入2】6 31 2 4 5 6 3【样例输出2】1【样例输入3】7 45 7 2 4 3 1 6【样例输出3】4第三个样例解释:{4},{7,2,4},{5,7,2,4,3}和{5,7,2,4,3,1,6}2. 打砖头(brike .pas/c/cpp )【问题描述】在一个凹槽中放置了n 层砖块、最上面的一层有n 块砖,从上到下每层依次减少一块敲掉第i-1层的第j 和第j+1块砖。

你现在可以敲掉最多m 块砖,求得分最多能有多少。

【文件输入】输入文件的第一行为两个正整数n 和m ;接下来n 行,描述这n 层砖块上的分值a[I][j],满足0≤a[i][j] ≤100。

【文件输出】输出文件仅一行为一个正整数,表示被敲掉砖块的最大价值总和。

【样例输入】4 52 23 48 2 72 349【样例输出】19【数据规模】对于20%的数据,满足1≤n≤10,1≤m≤30;对于100%的数据,满足1≤n≤50,1≤m≤500;3.合并序列(sequence.pas/c/cpp)【问题描述】有两个长度为N的序列A和B,在A和B中各任取一个数相加可以得到N2个和,求这N2个和中最小的N个。

【文件输入】第一行输入一个正整数N;第二行N个整数A i且A i≤109;第三行N个整数B i且B i≤109。

【文件输出】输出仅一行,包含n个整数,从小到大输出这n个最小的和,相邻数字之间用空格隔开。

【输入1】51 32 4 56 3 4 1 7【输出1】2 3 4 4 5【数据规模】对于50%的数据,满足1≤N≤1000;对于100%的数据,满足1≤N≤100000;4. 最小密度路径(path.pas/c/cpp)【问题描述】给出了一张有N个点M条边的加权有向无环图,接下来有Q个询问,每个询问包括2个节点X和Y,要求算出从X到Y的一条路径,使得密度最小(密度的定义为,路径上边的权值和除以边的数量)。

NOIP历年复赛提高组试题.

NOIP历年复赛提高组试题.

第十届全国信息学奥林匹克分区联赛(NOIP2004)复赛试题(提高组竞赛用时:3小时)1、津津的储蓄计划(Save.pas/dpr/c/cpp)【问题描述】津津的零花钱一直都是自己管理。

每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。

为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上20%还给津津。

因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于100元或恰好100元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。

例如11月初津津手中还有83元,妈妈给了津津300元。

津津预计11月的花销是180元,那么她就会在妈妈那里存200元,自己留下183元。

到了11月月末,津津手中会剩下3元钱。

津津发现这个储蓄计划的主要风险是,存在妈妈那里的钱在年末之前不能取出。

有可能在某个月的月初,津津手中的钱加上这个月妈妈给的钱,不够这个月的原定预算。

如果出现这种情况,津津将不得不在这个月省吃俭用,压缩预算。

现在请你根据2004年1月到12月每个月津津的预算,判断会不会出现这种情况。

如果不会,计算到2004年年末,妈妈将津津平常存的钱加上20%还给津津之后,津津手中会有多少钱。

【输入文件】输入文件save.in包括12行数据,每行包含一个小于350的非负整数,分别表示1月到12月津津的预算。

【输出文件】输出文件save.out包括一行,这一行只包含一个整数。

如果储蓄计划实施过程中出现某个月钱不够用的情况,输出-X,X表示出现这种情况的第一个月;否则输出到2004年年末津津手中会有多少钱。

【样例输入1】29023028020030017034050908020060【样例输出1】-7【样例输入2】29023028020030017033050908020060【样例输出2】1580【问题描述】在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。

烟台noip2010加试试题

烟台noip2010加试试题

考生注意:1.普及组考生做前三页试题,提高组考生做后三页试题,每题100分,共300分。

2.请在D:\noip2010下建立名为“机位号+姓名(汉字)”的文件夹,并将自己的程序文件存放其中。

例如,孙源的机位号为3,则文件夹名必须为“3孙源”。

3.源程序文件、编译程序的主文件名为试题规定的主程序文件名。

4.每题均为文件输入,输出。

水仙花数(narcissus.pas/c/cpp)【问题描述】如果一个n位自然数的各位数字的n次方之和等于它本身,则称这个数为水仙花数。

例如153(153=13+53+33)是一个3位的水仙花数,8208是一个4位的水仙花数。

编程找出m,k之间的水仙花数。

【输入文件】输入文件narcissus.in,只有一行,有两个整数m,k(102<m<k<107),两数之间用空格隔开。

【输出文件】输出文件narcissus.out,若m,k之间没有水仙花数则输出“No”,否则每行一个从小到大输出所有m与k之间的水仙花数。

【输入样例】101 500【输出样例】153370371407顺序分数(frac.pas/c/cpp)【问题描述】输入一个自然数n,对于一个最简分数a/b(分子和分母互质的分数),满足1≤b≤n,0≤a/b≤1,请找出所有满足条件的分数。

这有一个例子,当n=5时,所有解为:0/1 1/5 1/4 1/3 2/5 1/2 3/5 2/3 3/4 4/5 1/1给定一个自然数n,1≤n≤160,请编程按分数值由小到大的顺序输出所有解。

注:①0和任意自然数的最大公约数就是那个自然数②互质指最大公约数等于1的两个自然数。

【输入文件】输入文件frac.in,只有一个整数n。

【输出文件】输出文件frac.out,每个符合条件的分数单独占一行,按照大小次序排列。

【输入样例】5【输出样例】0/11/51/41/32/51/23/52/33/44/51/1最短网络(agrinet.pas/c/cpp)【问题描述】农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场。

CSP-S(NOIP提高组) 复赛2010-2020考查内容一览表

CSP-S(NOIP提高组) 复赛2010-2020考查内容一览表

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引水入城广搜、动态规划。

第十六届全国青少年信息学奥林匹克联赛复赛试题

第十六届全国青少年信息学奥林匹克联赛复赛试题

第十六届全国青少年信息学奥林匹克联赛复赛试题(NOIP2010提高组)NOIP2010提高组复赛第一题机器翻译(Trasnlate)小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。

这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。

对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。

假设内存中有 M 个单元,每单元能存放一个单词和译义。

每当软件将一个新单词存入内存前,如果当前内存中已存入的单词数不超过 M-1,软件会将新单词存入一个未使用的内存单元;若内存中已存入 M 个单词,软件会清空最早进入内存的那个单词,腾出单元来,存放新单词。

假设一篇英语文章的长度为 N个单词。

给定这篇待译文章,翻译软件需要去外存查找多少次词典?假设在翻译开始前,内存中没有任何单词。

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

每行中两个数之间用一个空格隔开。

第一行为两个正整数 M和 N,代表内存容量和文章的长度。

第二行为 N 个非负整数,按照文章的顺序,每个数(大小不超过 1000)代表一个英文单词。

文章中两个单词是同一个单词,当且仅当它们对应的非负整数相同。

【输出】输出文件 translate.out 共1行,包含一个整数,为软件需要查词典的次数。

【数据范围】对于 10%的数据有 M=1,N≤5。

00%的数据有 0<M≤100,0<N≤1000。

解题报告代码:program translate;vara:array[1..100000] of longint;b:array[1..100000] of boolean;i,n,m,h,x,sum:longint;beginreadln(m,n);for i:=1 to n dobeginread(x);if b[x] then continue;inc(h);a[h]:=x;b[x]:=true;inc(sum);if h>m then b[a[h-m]]:=false;end;//forwriteln(sum);end.//mainNOIP2010提高组复赛第二题乌龟棋(Tortoise)小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。

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