字体:大 中 小
护眼
关灯
上一章
目录
下一页
第248章 需要对答案吗? (第1/2页)
预处理的方案很多,但各有利弊。 比如,在这道题中,如果使用线段树来做预处理,需要维护三个值:区间内最小值、最大值、数的个数。 这种办法有个缺点,当Hi的值很大时,有可能会内存开销过大,导致空间超限。 根据规定,程序可以使用的内存只有128兆,一旦使用的内存超出限制,则整道题0分。 为了解决这个问题,就需要进行离散化cao作,平添难度。 江寒通过分析,综合比较、权衡了一番后,选择了比较保险的双向链表模拟算法。 相比线段树,双向链表不需要离散化,但是细节比较多,调试起来会稍微麻烦一点。 江寒自然不怕这点麻烦,一个是他对双向链表掌握得很好,二来……早上吃那么多东西,就是为了用在这种地方的。 只要舍得全力开动脑力,编写起这种复杂度的代码来,只是小意思。 还剩下一个半小时,时间上是完全够用的。 对输入数据进行了预处理之后,接下来就可以寻求题目要求的解答了。 这一步,可以用“倍增法”进一步提速,这样就可以保证,在很短的时间内算出答案,避免时间超限。 由于答案数字很大,这道题也要用高精度来处理一下。 但和第二题又有点不一样,这道题的精度压力,其实并没有那么离谱,完全可以尝试采用longlong数据类型来解决。 如果为了万无一失或者炫技,当然也可以再次手写一个高精度算法。 但江寒经过分析、计算,认为longlong已经完全够用,就没费那个劲儿。 放在几年前,在NOIP等各种编程比赛中,longlong还是禁止使用的数据类型,但从去年开始,NOI官方终于放松了限制,明文允许使用了。 这样一来,很多难题的编程复杂度,就被大大地削减了。 编写完第三题的代码,调试通过后,江寒又设计了一些数据去检测,结果完全正确。 看看时间,还剩下半个小时。 这个时间自然也不能浪费,江寒将代码整理了一番,清理掉调试数据,注释掉不需要的输出,删除多余的文件。 最后,再跑了一遍代码,确认毫无问题后,又利用最后十分钟,复查了一遍文件夹、源代码、输入输出文件的命名,排除各种低级错误。 别说,还真让江寒查出了一个问题,第1题的输出文件名,打漏了一个字母。 应该是,结果打成了。 这可不是什么小问题,如果没查出来,就是致命错误。 如果文件名弄错了,程序编得再完美,也只能爆0! 每年都有不少“大神”级别的高手,折在这种低级错误上。 好在江寒的时间非常宽裕,这才能及时发现并纠正。 不过,等到明天进行Day2比赛时,就要吸取教训了。 江寒默默地想着。 像是这样的地方,最好从题目中直接复制、粘贴过来,不要再手打…… 一切梳理妥当后,时间也差不多了,还剩最后两分钟。 江寒举手示意。 监考教师走了过来:“什么事?” “交卷。”江寒轻声回答。 顿时,刷刷刷,许多目光扫了过来。 因为机器摆放的问题,没有人可以看到别人的屏幕。 可是,能看到脸色啊。 发现江寒一脸的云淡风轻,那些人顿时就心里明镜,这只怕是一位真大神。 也只有真正的竞赛高手,才会时间充裕到这种程度,不等监考教师主动喊停,主动交卷。 监考教师核对了一下江寒的答题文件夹,然后就示意他可以离场了。 这就是NOIP比赛比较人性化的地方了。 比赛时间截止后,所有选手只需有秩序离场,
上一章
目录
下一页