这两天晚上一直在做这一套试题(那时寒假回校坐火车,耽误了),做出来的4道都没什么难度,估计是心里没有压力。比赛能做出4道,那才行。
先来简单说下做出来的这4道,其他的以后更新吧。
1.1002(3774)其实是这次比赛中最简单的一题了,不过从AC的人数看来并不理想。毛教主说这就叫比赛,不仅题目难度不同,连题目理解能力也上升了不少,估计被这题卡住的90%的选手是卡在理解题意了,我当时做这题时读了两遍没感觉,后来在Mo、xi的帮助下才理解了题意,再后来25行代码A了。这题需要注意的是题目要求绳子长度必须至少是悬崖(最大)高度的2倍才能用来爬(当时没懂样例就卡在这里)。其他的就不侮辱读者的智商了、想看代码的下面有。
2.1005(3777)这题不错,题意是给你一些需要打印的页码范围(范围间有重合),问你至少要打印多少页才能全部打完(题目中规定了最大页码值)。我一开始想的复杂了,想着怎么把重合的去掉,其实这题中重复的页码并不重要,只是让你求所给的范围里有多少页码值(凡出现的,满足总范围的)。那么设置一个bool型的vis[]数组来记录第i页是否出现在了这些范围里不就行了么,懂了吧?原来so easy!
3.1007(3779)这题有点难度(对我来说),我交了好几次才AC,一开始不是wa就是tle。这题其实就是给定两个子序列和一个总序列(满足栈的形式,只能从一边取数,不过和栈没一点关系,主要是看到火车轨道我就想起栈,被《入门经典》害惨了),判断能否由这两个子序列得到总的序列。元素有相同的话应该使用记忆化搜索。理解了这一点这题立马就变水了,不过需要注意的是如果没有if(ok) return;这一句的话还是会tle。具体见下面的代码。
4.1008(3780)这题就是简单的模拟,关键还是在于理解题意,题目就是告诉你三个数字表示长、宽、高,然后判断这个范围所表示的是什么类型的邮件。我一开始没把packet的范围搞对,导致连WA了两次,测了几组数据之后才发现不对。唉,做模拟题还是要心细啊!