NOI 2016

一试

今天进行了一试,我得了89分。不好,但我觉得没什么丢脸的。群里学弟告诉大家不要问我的分数,以免给我带来太大压力。本来想调侃一句“想不到你还挺贴心~”,没发出去。当你暂时远离一些东西,才更能体会到它们的可贵。
考完之后,打开手机。终于能连上网了。看到昨天晚上,群里的诸位给我的祝福(虽然是黎学长发的口令红包……)。跟几位学长交流了一下考试情况,其中,和WZH学长通话半小时。说好的远程打网络同步赛呢?怎么不好好写暴力,睡觉去啦?:) 感觉[我]还是有些让人失望。相比起省选和APIO接近没分的我,似乎没发生什么本质性的进步。还是说,进步这种东西,本就是一点一点的?
我不是一个人在战斗。有些东西,先前还是忽视了。机房里少了有时显得过于吵闹的大家,我还会那么开心吗?当你在火车上,用光了笔记本的电,你才能体会到电这种能源的宝贵。当你被要求住在一间阳台上满是蚊虫、类蝉形昆虫的寝室,才能体会到家的可贵、体会到APIO时住的五星级昆泰酒店是多么舒服。当你在考场上现推一套公式,才能体会到平时研究、积累的重要。当你发现面对新建的文本文档,你打不出正确的lct,才能体会到理解的重要。想起班主任老杨的一句话:“灵感源于记忆。”我觉得这是不对的。灵感源于观察和理解。我曾以为我理解了lct,现在想来,大概是临时记下了代码。说穿了,它就是一个用许多棵Splay Tree维护有根树森林的数据结构,Splay Tree有Splay操作,在此基础上,lct构建了以access操作为核心的一套操作:makeroot、link、cut。你顺便maintain、pushdown(pushdown也是makeroot操作必须的)一下,以在树上记录额外的信息。但是,说来容易做来难,细节我一直未曾理清。前几天开始写水管局长数据加强版,还没过样例。我还从未手动模拟过lct。所以失败是必然的。
我一直觉得自己有些高不成,低不就。NOIP范围内的东西都没学透,就来玩省选、NOI。我也说不准。有时,又确实是站在一个更高的角度看问题才能高屋建瓴。我比本校其他同年级同学领先并不多。前几天写的大步小步,马老师几个月前就学了。我和他一起看的,但他比我快。说实话,我当时是不太懂的。主要是枚举的范围,为什么到p就可以了?前几天粗浅地学习了欧拉函数的性质,或者说费马小定理,明白了。他会的欧拉函数的几种计算方法,前几天我才根据学来的几个性质证出了曾经让我惊叹万分的一个公式,筛法求欧拉函数表还没写过。我的搜索也学得不过关。基础的动规也是半吊子。
根据张博士的理论,难的你都会了,简单的能不会?可难的我不会,简单的我也不会。
我希望在NOIP 2016中取得较好的成绩,在NOI 2016二试中取得不差的成绩。还需努力。

上面写了一些随想。下面来说说今天的考试。
T1使我想到了NOIP 2015的子串一题,竟以为是动规。没思路。看到前两组数据,字母都一样。这个算算就好了。20分到手。又写了个O(n^4)暴力:枚举子串、分割点、朴素比较。感觉不太靠谱的样子,也只能做到这样了。也许应该针对连续相同的一段用子任务一的方法算一算?不一定所有字母都相同,有个循环节就好。感觉在我的枚举方法中不好插入这一段,于是放着了。
发现我的键盘的按键标号是错位的……虽然已经记住了,但自己似乎有看键盘的习惯,有点别扭啊。为了节省时间,没找工作人员换。
T2使我联想起bzoj 1001——平面图最小割?画了一会儿,感觉不对。没有举出明确的反例。打开大样例,答案都分布在-1~2,这是巧合还是必然的性质?这道题大概是有奇怪的做法。我发现,只要存在一块空地(跳蚤)在矩形的角上,就能只用两只蛐蛐围住了。最大的数据,n, m <= 10^9。可能要离散化。或者,不能把图建出来。于是,我想到一种枚举:行、列、对角线。试着把这条线填满,如果左右/上下都有空地,就更新答案。对角线用类似于八皇后的处理方法,将横纵坐标相加减。可这是矩形。我预感到会出现一大堆min、max函数。推导它们耗费了我好长时间——作为一个分不清方向的人。
T3没思路。看了会儿题目后面附的把分数转为小数的方法,不是很懂循环节的判定。难道要模拟?望而生畏,不太想写。T2不太放心,转去写常规暴力。怎么判断连通块呢?

[以上写于2016年7月24日晚。]

写完了没剪枝的暴力。大样例该过的几组数据……WA。检查了一遍,发现BFS找到第一个结点加入队列后没有break,于是就break了。好啦。考试快结束了,保险起见,我想试试小样例。WA。本来打算数据分治的,现在只能把这个更靠谱的常规暴力注释掉了。

考完和魏学长交流。我居然忘了字符串的比较可以哈希……惭愧。我以为我懂哈希。

下午看结果的时候接着找错误。发现了3个错误(其中一个在吃午饭的时候意识到了):
1. 不能将连通块大小和初始的空地数量比较啊……要减去新放置的蛐蛐数量。
2. 的确应该break,但这是二重循环……
3. 上下左右走的常量表dx[]、dy[]打错。

看YJQ的NOIP 2015游记,斗地主10min写完。景仰QAQ。本就应该是这个时间。编码熟练性、准确性、思维的流畅性,我还和大神相去甚远。

确认坐我对面的是KPM。%

二试

去妈妈住的旅馆洗澡,讲了键盘的故事,妈妈说我不去换是个非常失策的行为……考试的时候,一是怕耽误时间(结果上厕所排队的时间够我换三次键盘了);二是,心想,忍一忍就过去了,座位是随机的,下次大概不会坐这里。果然,从A24挪到C22。但是,我还是觉得得告诉明天坐A24的同学。这件事影响到我的心情就够了,别让它再影响到下一个人的心情。便在伪官方交流群说了一下。一个萌萌的妹子来寝室找我,说她是明天的A24,要我讲讲具体情况。帮助到人了!感觉挺开心。我觉得我见过她,今年APIO曾经和一个和她相像的同学同一张桌子吃早饭。

夜晚在校园里转了转,本想吹吹在锦里买的笛子。怕扰民,作罢。灯光透过叶丛投下影子,操场上传来打篮球的声音。

浏览一遍试题,怎么又是跳蚤?果然有提答,很有趣的样子。

像一试一样敲了vim的简单配置文件,如下:

set number
syntax on
colorscheme desert
set tabstop=4
set shiftwidth=4
set smartindent
set mouse=a

又读了一遍T1。想了想。先离散化,枚举每个点,记录覆盖次数,达到m次的用最大长度减最小长度?覆盖次数可以用差分数组嘛。然后就是裸的线段树?不虚!离散化和线段树都是最近写过的。太好了!可以AC!

1h+后完成,怕离散化那里写错,静态检查了好几遍。沿用了APIO 2016 赛艇一题左闭右开的方法,其实,我发现,我并不理解为什么要这样。样例没过。为什么呢……检查无果,又去读题……完了!看错了!是最小化费用!

此时是10点左右。心如乱麻。怎么办?每个点开一个set?肯定不是AC做法。暂时只想到这。先前的代码也就只有离散化可以复用了,所幸比较好写。能不能优化呢?好像不能,AC大概得换个角度。小样例没过。啊,set自动去重了,我该用可重集合,或者自定义类型,再加一维,前者方便些。等等……可重集合的名字是什么来着的?!multi_set?mul_set?mulset?都不对啊……我该去找找g++的头文件?在哪个目录下?

是multiset!好险。

起码它正确了。大样例丢进去跑了跑,去看T2。过了一会儿,跑出结果了,是正确了。打开输入文件,应该是随机的数据。悬着的心暂时放下了。

T2没有思路。大概有什么规律,但不是很显然啊。看了看子任务,发现n<=10,k=1的10分可以拿。还有10分可以搜一搜,但是感觉不是很好写。定点高精度小数库好像很有趣,但是没心思仔细看了,我写的这两个点long double足矣。等等……warning……怎么用printf输出long double类型的数来着?!cout试了试,忘记怎么设浮点数的精度了。这个问题和可重集的名字之谜一样,有点低级。

我枚举了所有子集……现在想起来好蠢啊……贪心这种方法我还没入门。

[还写了一些东西,莫名地消失啦。关于解T3的过程和开、闭幕式。留在记忆里吧。会重新做一遍T3,到时候再回忆。成绩是:100(笔试)+85+4+0+60+10+55+5(A类)=319。]

南山风光

各路神犇,暂时除开我
“三大球增强”
富乐山
查分现场
vfkvfk?vfkvfk!
趣味运动会,某队被否的初始队名
毛爷捧杯
再见
一曲终了,寂静无人,唯有那蝉鸣

EOF

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值