首页 > 代码库 > apio2017游记
apio2017游记
day-3~day-1
感觉期中考完挂
day0
8:30的东航航班,因为"一带一路"会议,要提前三小时到机场,凌晨三点半起床,这时机场大巴都还没有的,幸好领队老师和coder107同乘一辆车,前一天说好捎了我一程,不然前一晚就要露宿机场了……路上从coder107那里知道了国家队名单,毛爷爷好稳啊。六点整到达机场(长水机场没雾真好……),半个小时不到就办完手续,开始两个小时的等待。闲成咸鱼,在机场敲了两个小时的输出质数表……话说Ubuntu真费电,只敲了两个小时的代码,亮度极低,不敢开网络,等登机时就剩6%的电了……
飞机上领略了黄土高原的侵蚀地貌,华北平原真心平啊,一丁点山都没有……
降落时真的惊悚,忽上忽下,还没坐过这么“飞”的飞机,尤其是快对准跑道的时候,突然抬升,极尽左右横跳、腾挪变化之术,然后才险险着陆,着陆后听说有某个倒霉的oier被两次分到和女选手睡大床房,心里有些那啥(#滑稽)两个小时的出租车后,终于到了酒店.
领了衣服、狗牌、饭票、秩序册、房卡之后,听说同宿的叫luoyuqi?这位大佬名字有些中性(逃)。找到房间但并不会使用这么“高级”的房卡,跑了两次前台,最后是一个保安叔叔来教我开的房门……
然后去酒店对面饭馆和同学、领队老师、一个厦门一中的老师一起吃了午饭,期间安徽领队老师也经过,几个老师问好,谈到本弱省的oi发展情况,安徽领队老师说:"让家长尝到甜头就能慢慢发展起来了。"我们老师:"还没尝到甜头就尝够苦头了。"心里有些波动:"我搞oi到底是为了什么呢?是那所谓的甜头吗?还是算法之美?"
下午去八十中吃饭,车上睡了一觉,下车时头晕眼花的。到食堂发现:食堂比我们学校的小啊……
晚上同宿的大佬终于出现了,强省的高一A类大佬啊!连电脑都没带,晚上就看电视,一起吐槽了酒店电视的渣画质,交流了一下知道的dalao。调了一晚上的左偏树,然而阅读代码能力太弱,调到12点都没成功。睡前查了一下期中考成绩,403名,比上次进步仅仅12名,不就等于原地踏步么,跟何况班排还从31掉到了32,唉,文化课停滞不前是oi的锅还是我这半学期效率低下的锅呢?我猜是后者。
day1
早上和coder107一起坐车去酒店,路上他给了我两道简单的(水)构造题(脑洞题)。第一题:如何用a、b、c三个字母构造一个字符串,在尽量少用c字母的条件下,不出现长度为3的回文串。问题好水(chun)啊,两个a两个b两个a…这样不就可以了。秒了以后又一道题:n个点编号1、2、3、4、……、n,每个点与其他每个点连一条无向边,连成一个完全图,第i个点到第j个点间的边权w=n-abs(j-i),求此图的一个哈密顿路,使所经过的边权和最小,输出这个边权和。yy了一路,下车时刚好想出来(也挺水的)。
这句话教育我们不要做电灯泡2333333333
之后去考场试机,帝都的图书馆就是不一样,里面那么多电脑,门口还有两排平板电脑。试机题目是apio2016(来之前居然忘记看了!),交互题之前完全没接触过,就先做交互吧,反正前两题暴力分给的多,更难的分短时间内也拿不到。最大差分前30分想了好久,分别取剩下的数列两端最大的和最小的数n/2次就能得到整个数列。等敲出来的时候澳大利亚那边502了,就上uoj凑合交一下吧,发现记录里全是最大差分这题。哇,果然爆0了,我还是naive啊,交互题还是不太会做。时间也差不多了,一时半会儿也改不出来,就用U盘拷贝了题目和代码离开去吃饭了。
晚上王宏(称谓该是什么呢)交代了比赛注意事项,还说apio有一定可能因为一带一路会议变身apoi,有点不友好啊。
之后居然是clj讲课,%%%%%%,然而本蒟蒻视力不好,投影屏亮度又小,根本看不清题目啊,前三题都是好不容易才辨认出一半的题目,陈老师就讲完题目到下一题了……心想还是去uoj群里下载课件慢慢研究吧,于是在大礼堂里用草稿纸推最大差分的剩下70分,20min想出了一个二分的做法(我好菜呀),似乎过不了啊?接着想……结果等到陈老师下课我都没yy出解法。
在走向大巴的途中听到一群福建大佬在讨论最大差分那70分的解法,情不自禁凑了上去,似乎要对区间分成多少多少块,然后分块查询?结果跟着大佬上了他们的大巴,我和coder107依然没意识到我们干了什么……车上听他们讨论了明天比赛卡评测机的计划(#滑稽)和C++14的好处,就这样一路到了珀丽(大巴司机为何非要读boli,明明是读poli)。下车后,我和coder107才意识到:光顾着听大佬讨论,上错车啦!我的老年机不能导航,coder107的手机又没电了,于是两个外地人在大半夜的帝都开始了小鼠走迷宫般的寻路……
明明出门右转直走就到了,我们却选择了左转……回到酒店已经10点了……
在酒店颓,和luoyuqi一起看了猩球崛起1,最大差分那题想都没去想……
day2
比赛日。
出生于弱省,也不敢期望拿牌,而且当时以为打完这最后一场就退役了,就最后拼一把,发挥出自己的真实实力就满足了(然而……)
正式比赛前,一群oier集中在八十中图书馆门口,那两排iPad已经排好了一句诗和一张照片…………
入场后才配好编辑器(我习惯用anjuta),比赛就开始了,说好的1h试机呢?
打开题目,smg,两道交互题?好吧,第一题用交互只是为了强制在线。
先下载好交互库,然后花半个小时浏览一遍题目,想想能拿下的点吧。
t1。task1直接暴搜吧。task2,似乎可以把每一列分成四种状态:上下都是河、上下都不是河、上面是河下面不是、下面是河上面不是,然后变成一维的地图用数据结构处理。期望拿下测试点:1、2,预计耗时1.5~2h
t2。这是道真交互题了。之前除了最大差分都没接触过交互题,想第一个子任务就想了15min,弃疗(还是naive啊),不可做
t3。这道题总算传统了。找环?tarjan?不对,只是找环,不是找强连通分量,那么Floyd?可能吧,但是已经很久没写Floyd判圈,忘了,待会现推吧。接着往后看,又是买又是卖?还有贩卖时间?好晕,第一个子任务还好吧,只要搜在哪里卖就行了,后面的有时间再想吧。期望拿下测试点:1,预计耗时2h
恩,能拿到的保底35分吧,如果时间够就再多拿点。
开始码代码……
t1 task1用时30min码完,过了样例(手速还是不够啊),但是task2用什么数据结构维护呢?我掌握的数据结构也不多,裸线段树、树状数组什么的,不能硬套我会的,那就现想个办法吧。5min后,想到了一个办法,设表示地图情况的数组是m[],那m可以有一个一个的区间状态相等,那我就能建立一个next数组,在统计颜色个数时靠next数组一段一段地跳过相同区间,加快速度,至于时间复杂度,下界O(Q),就是每次询问范围只含一个区间,可能么?上界就难过了,O(CQ),就是每次询问都询问全图,m数组又是每个区间长度为1,祈祷数据别那么丧病,然而C<=200000,Q<=100000,就祈求区间长度能长一点,next数组作用大点了...再次过去30min,码完了task2,过了自己造的小数据,交上去,嗯?!居然爆0了!点开看,样例过了0分,task1居然wa了?task2自然tle了,但是运行了1.9s,这是卡常的节奏么?我似乎不太会卡常啊,不管了,先改出task1再说吧。
此时已过去1h45min,我犯了本次apio最大的一个错误:决定先拿下t1的11分。
之后执着地读代码、改代码、造数据,然而自己造的数据总是不能卡出bug,反复看代码也没看出错误,t2加了几个卡常技巧无济于事,执着几乎变成了偏执,心里越来越急,越急越改不出来,期间还因操作过快卡死了电脑,请张地主来重启了一遍,雪崩开始了……找bug的过程中完全忘了之前的策略,甚至都没有注意时间已经不多了,然而t1一直爆0。直到剩下40min时,我才筋疲力尽,终于抛弃了t1。来看t3,觉得剩下的时间太短,实力弱,不可能推出Floyd判圈拿下task1,弃疗。
此时时间已过去4h20min,剩余40min,得分0……
喝点水冷静下来,开始刚t2。嗯,task1给4分,那么方法一定很简单,草稿纸上推了10min,推出来了。
在任意一个物品旁放1颗石头,那么按照规则考拉不会在价值最小的物品旁放石头的。因为如果我放1颗石子的地方正好价值最小,那她不会舍弃另外一个地方剩下一颗石头来补救这里,如果我放石子的地方价值不是最小,那么舍弃掉价值最小的物品来补救我放石子的地方是值得的。那么考拉没放石子的地方价值最小!想通啦!1min码好,交上去终于得了4分,比赛开始以来第一次得分。接下来的30min,尝试了一下t2的其他子任务,能力不足、智商耗竭,切不动,t1又看了一会儿,还是没看出来bug,t3再想,依然弃疗。半个小时很快过去,最终得分4分。比赛结束了……………………
听着旁人交流自己考了几百分,我麻木地挪到食堂,不知道我当时是怎样的表情……草草吃完饭,遇到了coder107,他似乎考的不错49分,Cu可能性挺大的,如果他这次拿牌了,那就是我省oi8年多来的第一枚全国比赛奖牌了,好!但是突然想到自己,心情又低落了下来……等待讲题开始时,coder107给我讲了一下t2的task2、task3的做法,大概就是二分、分块?当时没听太懂。
讲题时选了个第三排的座位。t1斑斓之地,正解似乎又是特殊方法建图,然后用了某图论算法?没听懂。t2考拉的游戏,task1大家都在吐槽本来问一次就好的,题目却给两次机会,引导大家想复杂了啊;task2、task3就是coder107讲的方法,但我依然没听懂;task4,询问最多700次,直接套上归并排序stable_sort()(坐我前面那位大佬sort()被卡了,居然卡快排,出题人那啥),用询问结果比较两件物品的价值,作为比较函数,然后……没了?task5,全场神犇讨论活跃,几位说他只用了96次询问,另几位上台又说了个只用83次的方法,听得我一愣一愣的……
下午和coder107一起去吃饭,吃完饭等coder107玩手机1h+,到学校门口,大巴载着其他神犇开走了,剩下的没几辆了,等待发车期间,coder107离开方便去了,这时司机要发车了,我通过老师联系他,结果老师电话占线10min,多次努力后,总算召唤到了coder107,感觉rp++。
晚上回到酒店,luoyuqi考了127,%%%%%%,然后老师打电话来询问情况,大概说了一下,老师说:“算了,考完了,别太难过,就当是为国赛积累经验吧。”什么?!我进省队了?得知这个消息,没有很兴奋,从以为自己退役了到现在,心情早已平静。如果是10天之前,我也许会高兴吧,但是现在我感到的是沉甸甸的压力。文化课自从上学期期末考以来就没什么进步,这方面肯定要花时间(停课似乎不可能,这在我们省阻力太大),上学期学业水平考试语文没考过A,还要复习准备重考,现在oi实力只能在省内混,拿到全国范围内什么都不是,就算我这次拿到了所有期望分数,距离铜牌线都有4分的差距,除非发挥好点再拿到t2task1的4分,顶多是个压线Cu,一不小心就不是了。所以下半学期任重而道远啊。
晚上和luoyuqi大佬一起看了猩球崛起2。
睡觉前反思了一下这次比赛的发挥情况——
首先是实力因素,
apio2017游记