现在的时间是2016年5月5日22:48:48,是CTSC的结束日晚上,也是APIO的开始日晚上。
鉴于喜闻乐见狗牌滚粗,于是就写个游记纪念一下吧。
day -∞
要从R1完了的那天开始说起。
教练被R1给吓怕了。他第一次意识到SD变的高手如云,他从未想过省选上有这么多人A题,他没想到分数普遍特别高,他也没想到我能考的这么烂。
考试这种事情,尤其是坑爹的OI比赛,变数是很大的。不光知识的储备量,还包括考试策略、考试技巧、骗分手段、RP等等。然而我的运气很差,首先是习惯开大数组的我第一次MLE了,第二是字符串找子串的题目在写数据生成器的时候被生日悖论坑了。确实没有碰到过,也很难碰到。可是这种事情就这样发生了,在最关键的比赛中。
“别搞了,回去学文化课吧。”
就像去年NOIP完了之后,学长dc在关于我和lyh如何停课的问题上与教练的辩论。“如果停课时间很少,那还不如不搞。”虽然当时并没有感觉到怎么样,现在听到这种话,就感觉这么长时间以来的付出被一口否定了一样,心中很不甘。
于是我和教练谈了一中午。银行肯定是要下班的。没错,那天是CTSC和APIO缴费的最后一天。
最后,我和大多数OIer们一样,选择了继续留下来。父母也在和教练交流之后,坚持了我的选择,最后赶上了缴费的末班车。
于是我很幸运的继续了OI生涯,参与了CTSC2016,和现在刚开始的APIO2016。
day -4
今天和去清北学堂的小伙伴们一块来的北京!
神犇学弟忘拿身份证了…话说要RP也不能做到这种地步吧…于是教练和神犇学弟坐的晚半小时的火车…
人生第一次坐地铁! 然而和公交差不多吧…就是程序麻烦了点…
到了宾馆就颓颓颓!被他们强行装上300英雄…啊这种游戏还是好不滋磁啊…不好玩…玩不起来…
晚饭点的外卖,我觉得吃不饱所以点了两份…结果量挺大的嘛,很滋磁哦,就是有点辣…
打了打以撒就睡觉了!睡地板好冷啊…话说以撒总是出神装然后就作死死掉了,是不是强行攒人品啊【事实证明并没有…人弱的话要RP有什么用…该挂还是挂…
day -3
早上起晚了!颓颓颓
早饭就去华北电力大学的超市买了点带包装的汉堡什么的吃…乡下人没见过啊…都是现买现吃的没见过摆在货架上的…不过味道还是蛮滋磁的,如果只是为了填饱肚子的话…
上午看了看他们的课件…时间复杂度竟然这么多页…竟然pas党在C++党(老师)面前秀优越…mhy老师真是脾气好要我我绝对受不了…什么鬼啊这是…内容有点低龄化了吧,小学生都听得懂系列…
午饭不开心啊,早上吃多了…华北电力大学食堂三楼看起来很棒的样子…于是一杯奇怪的汤和一个汉堡算了吧…【事实证明汉堡很一般,汤很滋磁啊
下午看了看这两天bzoj多出来的省选题…感觉都好难啊QAQ
咦?HA的食物链好像很可做的样子?拓扑排序的DP吗…后来写了个记忆化搜索就过了…
还有那个HE的树那道题,感觉树剖+二分什么的可做啊…但算了算复杂度太差,log太多了…搜了一下题解竟然暴力就能过…刷水真开心
还有什么bignews,比如HA省省选考生物什么的…真是全面发展啊hhh
不过整天这么颓真的好吗…不管了不管了…
晚上去上了下晚自习,问mhy了一个我弃坑久远的SAM论文题,叫pty的字符串【bzoj权限题,然后他看了很久说不会做…大致指明了个方向…妈呀感觉RP掉光啊
清北那里留了一套data structure练习题…看了看有点水算了不做了…
晚上又冻着了…日了狗了
【某神犇带着他妹子晚自习完了去咖啡厅,然后教练得知之后让他们快点回来这种事情,我才不会在博客里说的!
day -2
早上又起晚了!颓颓颓
上午手贱开以撒,然后上午就没有其他时间了
中午点的套餐,很滋磁啊,价格也不贵。中午颓了会赛尔号2333感觉电脑带不动了,并且不会玩了2333
下午颓颓颓,还能不能愉快的学习了?
临近晚饭时间看见清北发了套string practice,正好复习一下字符串吧……于是看了看题
第一题SB模拟啊,poj1002,坑点好像蛮多的
第二题SB模拟啊,感觉除了输入难写以外没什么了,map存一下编号就行了
第三题不是我那道拍了百万组数据没挑出错的SA吗?我的天noip怎么放SA模拟题?可怕
第四题求最长回文子串长度…窝不会马拉车啊QAQ上SA吧,正好复习一下SA
第五题是kmp的入门题,求a串在b串中出现次数
第六题kmp求最小循环节
第七题不会做啊QAQ感觉是马拉车之类的算法扩展,我都不会马拉车怎么扩展QAQ
第八题是bzoj2145,给凯撒加密的字符串解密使得更像一个英文句子。这个就比较有意思了,乍一看没想出来怎么做。hzwer是写的估价,调了很久参数才A…然而更为普遍的解法是搞一个很厉害的英语常用单词表然后查询匹配次数…这个很好写啊,后来发现也挺好想的…你总不能让电脑识别英语单词吧,你得给他个单词表吧!
然后就去吃晚饭,还是很滋磁啊
晚自习开始码码码,几个做过的没什么写的必要的直接粘了。码了个T2为什么挂了?后来发现freopen忘了去掉了…然后就A掉了…然后开始码T4,码完一交RE了,wori什么鬼?一看数据范围100w,吓尿了…题面和我做过的完全一样,就数据范围加了个0…坑爹啊…弃疗辣
然后开始码T8…头一次如此费心地在百度上找【常用英语词汇大全】这种东西…各种东西码码码完了之后再从下载好的英语词汇大全里用程序提取英语单词…费劲啊,最后一交WA了…卧槽感觉没什么地方写错了啊,然后网上好多英语词汇大全没有a an is这种词,弃掉了,还有一些不好提取单词…然后我找了个AC代码换了个单词表就A掉了…这道题做的好不开心…
最后A掉六道,竟然是rank1…吓尿了,我这么弱…不会马拉车的我T4和T7弃疗啦…T4还是mhy当模板题敲给他们看的QAQ
顺便听了一下讲题…正解很简单嘛…这个题和马拉车的关系感觉就像是和NOI2014的那个动物园和kmp的关系一样,结合起来思考,找一找共同点什么的就好了
晚上颓颓颓,和rainheart一块推完了魔女之家,虽然我是三周目23333 不过再回顾一遍还是觉得很棒呢,剧情很棒、很虐。顺便安利了一下岚少在爱灵之贽里的尖叫2333还有一些有意思的RPG游戏
day -1
早上还是起晚了!颓颓颓
在清北的最后一天,于是白天一直颓颓颓
晚上有doc在vijos的noip模拟赛!于是以【晚上要比赛】和【以撒没打完】两个理由没去上晚自习。【事实证明前者被我忽略了
因为某些不可抗拒的原因打以撒,我直到开赛一个多小时之后才开始看题…doc的三小时四道题的noip模拟赛……好吧听着就可怕
T1为什么有【最优策略】这种字眼啊,这题能做?弃疗弃疗
方了,NOIP模拟赛T1就不会做,滚大粗啊
T2题意大概是给你一个长度是n的数列,你可以给这个数列加上n的排列,问有多少个数可以达到最大值。不一定是严格最大。
T3题意大概是平面上给你8000个圆,以圆心坐标+半径的方式给你。然后8000次询问a坐标和b坐标之间的最短路是多少。若跨过圆(圆内到圆外或者圆外到圆内),则权值为1。保证圆不相交不相切。
T4题意是给一个残缺的括号序列,问补全成合法的括号序列的方案数是多少。这里的括号序列定义为左边x个左括号,右边x个右括号,或者两个合法的括号序列相接。比如(())、(())()是合法的,(()())是不合法的。
看完题想先敲T4暴力,于是写了个20分。然后想加点黑科技骗分,结果发现很难加,于是放弃了。
然后开始做T2。
为什么题意里有句话我要加粗呢?因为这个并没有在题面中说明,而是样例中说明的。
我来说一下我的心路历程。
首先我仔细看题面,发现题面强调的是【总分第一名】,于是我考虑严格最大。
考虑排过序的数列,如果让第i个排名最高,那就可以对分数比他大/小的分别贪心。贪心很显然。
然而因为是整数,很有可能有同分的情况出现,然而我不会判,不知所措。
于是我把贪心的时候加的排列给列了一下,发现按顺序for过去只会影响两个点的增加量,于是可以线段树单点修改区间查询最大值来搞。
码码码然后跑了一下样例。咦怎么没过?
卧槽?不需要严格最大?你大爷!那不就是一个sort的事情!
算了反正我那个做法改个大于号就行了…过了样例于是交了……怕被卡常数啊啊啊
然后开始做T3。
基本上一眼题啊…只有包含和相离的关系,那就可以建一棵树,询问成了求LCA…n^2卡卡常数就过了…然后就写完了…树的根我是搞了个极大圆来做的,看了看发现各种地方不会爆掉,于是没管。然而不想卡常数啊,感觉差不多?没见过数据范围这么奇怪的题…
然后就愉快的颓颓颓
后来出分了…T1没写,T2竟然A掉了,没卡常。T3是WA+T,卧槽哪里写挂了吗?T4是20
T3改了个longlong还是挂了…看来就是奇怪的地方写错了…抽个空再调吧
然后晚上愉快的颓颓颓。因为下一天就要去CTSC报道了,于是明天要走。然而很晚的时候我才看了看百度地图,下了个滴滴打车,逛了会P站,然后就睡觉了。
day 0
今天是CTSC的报告日,因为早上要赶车,于是早起了!然而因为太早了,他们还在睡觉,于是没打扰他们,看了会P站,看了会百度地图,收拾了一下东西,愉快的玩手机。
然后早上愉快的搞了搞基,就走了。买了个带包装的汉堡和带包装的鸡肉卷,然后打车去的地铁站,教练在地铁站终点站等我呢…然后就自个坐地铁去了
下了地铁发现没带充电器,强行攒人品也是够了
然后来到五星级的昆泰酒店,可怕啊我这个农村人人生中没住过啊QAQ
愉快的拿了狗牌,愉快的拿了衣服,办了各种手续,然后就回房间了,就和教练告别了。
在房间里呆了很久,然后没等到同房间的那个人,于是到饭店了,感受了一下昆泰酒店到北京八十中学的路途。你们随便感受一下
【感谢北京八十中学给了我这一次锻炼机会
哦对,应该是南门,然而谷歌地图好像没有标注?(反对百度!)大概是1.5km的样子。
于是愉快的跑去吃饭,愉快的跑回来,因为睡得少再加上累的慌于是中午睡了一觉【五星级酒店的床真的很软很催眠啊
睡得太多差点耽误试机,于是滴滴打车了一波。
农村人被吓呆了,原来你们城里人的机房长这样啊,可怕…总而言之就是感觉很清新很适合学习的那种。电脑都是一体机,屏幕也很大。
好像某些机房的键盘不好使…不过大部分还是很顺手的。
然而是NOILinux,从未用过Linux的我第一次Linux啊啊啊啊,感觉药丸…还好我从HN搞了一份虚拟机什么的,可以装上试着玩玩。
试机赛两个题,一个是NOI2013的向量内积,传统题;一个是NOI2013的小Q的修炼,题答题。
两个小时试机时间,于是敲了敲向量内积的暴力和常数优化的骗分,然后我发现我不会编译。
于是向周围的神犇求助,get了Linux下编译运行的方法,开心。
小Q的修炼的checker挂了,我看懂题加上看懂样例就花了不少时间,再加上Linux不会使,不会编译,不顺手等等问题导致没时间看提答,最后找cxm修复了一下checker然后才打算做…虽然并没有做什么吧
然后试机就结束了…表示感觉一脸懵逼,药丸啊QAQ没人跟我说是Linux环境啊QAQ
晚上装Linux虚拟机,然而很不顺利…同房是slyz的高一神犇,今年好像要进队的节奏…老年选手表示%%%。没说几句话就睡觉了。
day 1
早上起晚了!
可能是昨天跑的太多了,导致起晚了…食堂好像来不及了,于是买了个士力架就去了考场。我是在图书馆。
看题。
先看概述。第一题叫时空旅行,第二题叫萨菲克斯 阿瑞,第三题叫NOIP十合一。
两道传统,一道提答。
提答。
提答!!!
人生第二次提答就是CTSC!虽然不出乎意料,然而感觉还是不好啊,没有训练过啊。
不方不方,提答说不定很简单呢。
第一题题意大概是:
有n个平行宇宙(时空),初始的0号时空人类只占领了地球,坐标为(0,0,0),这是三维坐标。然后第i个时空是由编号小于i的时空发展而来的。这个时空每发生一个事件就会从这个时空发展出一个新的时空。事件分为两种:人类放弃了这个时空某个星球或者人类在这个时空中殖民了某个星球。然后现在你要去某个时空调查人类,你只要去这个时空中任意一个人类殖民了的星球调查就可以了,并且你可以任意选择这个时空的着陆点。若要从s点走到t点欧几里得距离是d,则花费d^2+c,c是调查t点所需花费。
然而你的飞船坏掉了,每次选择着陆点的x坐标必须是xi。但进入时空后还是可以自由活动的。
现在给了n个时空,m个事件连接这n个时空,q组询问,每次询问s、x0,表示进入编号为s时空并且指定着陆点的x坐标是x0,调查人类的最小花费是多少。
看题面这么长你就知道我读题花了多长时间了吧。并且这个题的题面和样例各种出错,有些地方考语文,差评啊。
第二题:给m种字符,每种ci个,问连接成长度为n的字符串的不同的后缀数组有多少个。ci个不需要用完。
很不可做啊!并且暴力还不好写!算了算复杂度不是很靠谱!弃疗!
第三题:给一个带权有向图,q次询问两点之间权值为d的路径条数,可以重复走。
不带权不就是矩阵快速幂嘛 这个我会
然后就开始喜闻乐见了。
首先我读题读的很慢,首先是T1如此长且不好读的题面,其次是我怕读错题。并且读题的过程中顺便思考了一下。然而并没有好好把握节奏。
了解完所有题题意,然后先看了看题答题,点开第一个测试点,n就上万了。
做个毛啊!!!为什么没有手玩点啊!!!为什么没有暴力点啊!!!
再看其他几个,有权值全是1的,然而n好像挺大的?还q次询问?快速幂不就爆炸了?
不方,回去看T1。读完题出可持久化啊,可怕…首先YY了一下样例,发现若确定调查目标了,则选择的降落坐标的y和z必定和确定的目标的y和z相同。
卧槽所以你这y和z坐标有什么卵用?我想到了NOIP2015的斗地主的花色,难道现在正规比赛中总有个题会用无用条件坑你?
然后我推了一下式子,是要求(xi?x0)2+ci最小,于是就愉快的写完了五分暴力。用的set,复杂度O(n2logn)。
然后感觉人类不会放弃星球那个部分分很可做啊,然后推了一下那个式子:(xi?x0)2+ci = x2i?2xix0?x20+ci = numi?k?x0。发现让这个最小,可以把这个一次函数画出来,发现是一个凸包,每次加入其实是凸包上加点,还要加可持久化。然后发现如果人类放弃的话那就是删点了。可持久化凸包维护最小值!?
卧槽这个我哪会写啊!!!吃了训练过少的亏了!!
然后就弃疗啦!!
【然而作为一个SB,竟然没发现有一个部分分是当x0是一样的时候,问题转化成区间最小,最裸的可以上主席树解决。然而我当时没看出来。对没错我就是SB】
然后T2暴力不想写,我觉得我SA要写挂并且算了算复杂度也不靠谱【事实证明五分暴力复杂度很靠谱。然后就去玩提答。
第一个点我画了画,大概是很多三元环穿起来在一个序列上,编号小的向编号大的连边,大概是这样:
然后发现把起始点调整到1 3 5 7 9上面,就是一个组合数问题了。答案是C((e-s)/2,dis)。
然后开始写阶乘和exgcd求逆元,感觉十分到手了。
然后无限RE…………
调了半天发现模数不是质数…wori…数论这一套我没学啊,中余定什么的…然后思考了半天怎么求大组合数,无果。
肚子疼,上了上厕所,顺便冷静了一下。
回来了之后,感觉还是n^2递推吧,然后开始算能开多大的数组,为了尽量多放数我把二维数组改成vector,然后二分数组大小发现最多开5亿的int,再大就toolarge了,算了一下大概三万的组合数,不虚。
然后就搞上了,一万六个询问无法回答,但还是有九分的。
然后开始搞后面的点,发现有一个100个点的权值都是1的数据好搞,然后就想上矩阵。
码码码,码完了之后开始跑。
卧槽!为何这么慢!吓得我赶紧输出一下每次询问的结果。
这时候才真正注意到Q组询问…复杂度太高受不了啊!!
然后开始试着对询问的距离排序,离线一下,结果还是很慢,又想HN那边学到的【某些时候暴力比快速幂快】,然而想了想赶紧差不多一样,很慢。
于是在这里浪费了很长时间。
然后就跑跑跑。这时候我比较着急,自己也没有什么做提答的经验,看见终端上一动不动以为是Linux的某些特点导致程序挂了,然后就去调试…
跑了一个部分分,两分,弃疗了。
然后再看另一个权值是1的点,发现n是1000。
…………努力跑一下可能跑得出来是吗?
然后就改了一下矩阵类里面的数组大小,然后就跑跑跑。
段错误
段错误!!!
Linux告诉我他RE了!原封不动的程序怎么搞的?
想到有可能是在函数内申请了1000*1000的矩阵变量导致挂了,于是放外面,还是挂。
然后想到有可能是传参的时候挂了,于是改成全局变量,还是挂。
然后发现好像和构造函数有关,wori这时候哪有时间关注这些语言基础的东西啊!!然而这些我确实不知道
最后调了很久,这里大概一个小时的样子…然后弃疗了,把矩阵类全部改成数组,矩阵相乘的a=a*a我改成了三个for。很丑,然而却没出事。
然而没时间了,我跑不出来了,哪怕只跑出一个询问,我能得一分也可以。
考试快结束了,我只有一个cpp,两个.out。
离结束还有十分钟的时候,发现第二个点是一个完全背包,第三个点是一个需要记一下的完全背包,然而写不完了。
预计得分:5+0+(9+2)=16分。
想了想:CTSC嘛,大家分肯定高不了哪去,去年铜牌才35…
出来之后,问了问HB的zyk,他说他五十。T1写了个主席树和暴力,T2样例错了导致浪费了他三个小时,T3他没好好玩。
虽然没人认识我,但我听他们讨论,都是几十几十的分数,瞬间我觉得我应该完全没有名次了。
后来听说很多人的T1是一眼秒了,然后写正解写挂了。yjq坐在zyk旁边,zyk看着他写了五个小时T1,也是蛮拼的。
于是我就愉快的滚粗了。
吃完午饭在图书馆颓颓颓,玩手机什么的。考试途中改了T1的题面和样例,T2的样例在考试三个小时的时候才改,差评啊!然后分数迟迟不出,最后竟然是讲完题之后才出,严重怀疑是不是出了什么差错,然而他们并不想说的样子。
听讲题,我去晚了没听见T1的前半部分,所以没听懂……总之就是码农题就是了。
T2是杜教的题,怪不得没法做。没听懂啊,颓颓颓
T3是毒瘤picks的提答!
第一个点确实是组合数,然后关于模数其实是一个2a3b形式的数,分别做一下然后CRT合并就行了。然而我不会CRT。
接下来确实是完全背包。
再往后确实是线段树。
之后就开始NTT什么的了。
picks:第⑨个点要出的很水。然后他说确实很水。然而谁看了啊!
看着ppt的标题:noip的第X个点->NOI的第X个点->清华集训的第X个点->CTSC的第X个点。整个人都不好了。
某火车:第X个点不需要FFT!暴力稍微等等就好了!
某我忘了是谁的神犇:第X个点不需要FFT什么的!因为权值都是1,询问的起始点只有一个,所以可以考虑矩乘,n*n的矩阵可以变成向量,复杂度少了个n,然后慢慢等就跑出来了!
跪烂……我智商低看不出来啊
之后听说yts六十多,龙哥六十多,heheda怒拿93,TA也特别强…不说了跪烂了…
晚上和教练吐槽了一会,玩了玩以撒,装了装linux,然后就打算睡觉了,同房的beiyu神犇没回来,大概是打游戏去了吧…
未完待续…