• 【游记】NOIP 2017


    时间:2017.11.11~2017.11.12

    地点:广东省广州市第六中学

    Day1

    T1:看到题目,心想这种题目也能放在T1?

    这个结论我之前遇到过至少3次,自己也简单证明过。初见是NOIP2005 过河

    结论是两个互素正整数a,b可以组合出>(a-1)*(b-1)的所有数字。

    原理也很简单,考虑大的数字x去填补小的数字y的空隙,x每翻一倍可以填一个不同的余数(因为互素),翻y-1倍刚好填补y-1个余数,但是填补最后一个余数的时候可以往前延伸到(x-1)*(y-1)都是填补完毕的,所以得证。

    T2:模拟栈,虽然题面有点繁琐,但其实挺简单的。

    T3:30分的统计最短路径数先写了,然后发现k很小于是拆点dijkstra,不被卡常的话可以得到无0边的70分(卡常60分)。

    正解是拓扑排序吧。

    Day1一切正常。

    Day2

    今天真是惊心动魄……

    8:30 一通狂敲读入优化和对拍,看T1。

    9:00 完成T1(n^2建边后bfs)

    开始看T2,用枚举边的方式写了T2的暴力。

    接着看T3,写了30分暴力。

    然后……天才卡题少女登场!

    清晰地记得Day1的晚上,我说道:NOIP不可能考平衡树的,最多考个set。(NOIP确实很少出数据结构题嘛QAQ)

    然后看到T3的部分分,经典splay操作(或者treap排名树),完全没复习。(数据结构本来就是我的弱项,平衡树确实已经半年没写了)

    10:00 心态有点不好(省选也有考了未复习算法的经历),对现场推treap并不抱有信心。

    心里想着说不定T3正解不需要平衡树,又想了想好像可以用块状链表代替平衡树。

    但是时间还是不多了,推来推去始终需要数据结构。

    开始想T2,觉得写出T2是唯一出路了。                                                          

    T2的数据范围是一道明显的状态压缩题。

    想到一个状态表示,f[d][x][S]表示根深度为d,状态S中的点形成一棵根为x的子树的代价。

    转移复杂度爆炸,妥妥的0分算法,细节也很多。

    挣扎着要优化,无果。

    11:10 页面反复的在T2和T3之间跳跃,试图拿点部分分,脑袋里却一点思路也没有。

    啊,这样是不是要退役了。

    高二NOIP Day2目前得分100+0+30。

    我的OI生涯是不是要这么结束了。

    T3询问少的分数怎么写啊……不会啊……。平衡树还可以拿30分啊……好不甘心啊,我怎么没复习啊。

    没时间了,比赛要结束了,我是不是要退役了。

    好不甘心啊……

    11:19 不能再浪费时间了,我想T2想到11:25,如果还想不出来就尽力拿部分分。

    求求你了……让我想出T2吧……

    11:22 简化模型,一棵树的价值是∑w(u,v)*d[v]。

    我能不能枚举根,然后一个深度一个深度地向外拓展,考虑每层有哪些点。

    枚举根,f[d][S]表示深度0~d结点状态S的最小代价。

    转移的话,应该是算每个状态对下一深度包含此状态的状态的影响……3^n?应该反过来转移更方便。

    所以用记忆化搜索的话,f[d][S]=f[d-1][S2]+w*d,w是S2^S和S之间连边的代价和,然后用记忆化搜索解决。

    复杂度……O(n*3^n)?

    好像可做???好像可做!!!

    好像可做!!!时间不够了,快写。

    11:30 开始敲T2正解。

    11:40 敲完代码,强制自己冷静下来……还有20min够了,开始debug。

    11:50 查出一个错误后,过了样例1和2。

    求求你了,让我过样例3好吗。

    445!

    谢谢!!!克制住掀桌而起的想法摊在了椅子上。

    12:00比赛结束。

    出来后和ccz讨论发现T2写法一致,但是问题在于我处理两个集合连边多了n^2的复杂度(应该只能过70了,不过也比原来的20分好),这是可以预处理解决的。

    还有就是我最后10min发现这个写法有个问题,S^S2往S连边不一定是叶子,反复考虑后觉得应该是一种放缩(条件严格化),这样计算虽然不全对,但是答案会被计算,非合格结果比答案劣,所以应该是正确的。ccz表示确实如此,长舒一口气。

    NOIP 2017 期望得分:100+100+60(70)+100+70(100)+30=460(500)。

    反思

    有很多很多想说的话。

    我已经高二了,OI生涯的最后一年。随着THUWC的出现,NOIP成绩变得非常重要。我身边的高二都是这样的想法:埋头冲刺NOIP,考得不好就退役不再搞OI。

    高二的时候考试,心态已经和高一的时候完全不同了。退役的文章见多了,真正要直面退役的可能却是第一次。

    嘴上说着退役了不要紧,大不了回去读高三拼文化课,其实我们中的大多数人,都没有面对退役的心理准备

    其实我们中的大多数人在为了OI放弃文化课而不顾一切的时候,都没有想过承担退役的后果。

    但是,无论退役的后果有多严重,我们依然愿意为了OI付出一切,为了能去想去的大学,为了自己的梦想,为了不去读枯燥的文化课,为了我们所热爱的信息学竞赛。

    为了这些或大或小的梦想,我还不想退役,我还想继续战斗下去。

    这次NOIP,有如下问题:

    1.速度:前松后紧的问题依然存在,3.5小时3道题时间非常紧迫。暴力一定要写快一点,像Day2这样部分多题目难,就应该争分夺秒才能赢得更多的分数。

    2.心态:不要总是想着这场比赛有多重要,考不好就退役了,这只会让头脑一片空白。想着考不好也无所谓,尽力去拿到更多的分数就好了。冷静!

    3.战略:时间安排有问题,仍然想着要写正解,部分分意识还是很薄弱。不要花大把大把的时间想题,这样容易陷入一个怪圈出不来。勤动手,该拿的分一定要拿到,不该拿的分赶紧丢掉。

    4.思考:多换换角度,不要老是围绕一个点思来想去没有突破,多尝试一些其他的切入角度。

    5.复习:不要押题!不要押题!不要押题!不要抱有侥幸的心理,各方面都要准备充分,对自己的薄弱部分要不断强化,考前几天提前背好板子不要考前一晚熬夜

    别忘了最初的感动,最后一刻的心动——《初梦》初音未来

    想去见你,想回到那,遗失的过去。

    想去见你,想迷失在,繁星的故居。

    想去见你,想再一次,唱我们的歌。——《告白》初音未来

    愿谁记得谁,最好的年岁。——《牵丝戏》银临/Aki阿杰

    键盘微凉,鼠标微凉。指尖流淌,代码千行。

    屏幕在深夜微微发亮,我心在考场。——《膜你抄》Menci

    谢谢这些歌曲陪我度过NOIP 2017,不到绝境,我绝不会放弃OI。无论成绩如何,我都会继续战斗下去。

    CYC never dies!

    后记

    最终成绩:100+100+60+100+70+30=460,和估计分数完全一致。

    机房很多人考挂了,挂得很惨很惨。虽然我考得不算好,却也是少数正常发挥的幸运者了。

    希望到明年五月,GDOI2018前我能对自己说,我已经有进省队的能力了。

    如此,才至少不会辜负这段OI生涯吧。

    幻梦终醒,本无不散之宴,却不悔付此华年。

    加油!

  • 相关阅读:
    用成员函数指针作为Callback
    在ubuntu上编译gcc会到的问题及解决方法
    异步
    棋牌游戏服务器架构: 详细设计(二) 应用层设计
    elementUI eltable添加序号列
    vue 父子组件的相互调用
    所谓编程的哲学艺术
    亲爱的百度,您带着bug翩翩走来……呃
    std::vector<point>对距离固定点的距离排序
    升级ubuntu11出现grub错误
  • 原文地址:https://www.cnblogs.com/onioncyc/p/7827358.html
Copyright © 2020-2023  润新知