APIO 2017 游记

  1. 云栖社区>
  2. 博客>
  3. 正文

APIO 2017 游记

wawcac 2017-05-21 01:07:00 浏览282
展开阅读全文
//第一次写游记,只是流水账。。。结果好像确实只去游了……
day-11
  省选挂了,即将退役……(然而apio之后得知并没有退役,感谢放我一条活路)(吐槽出题人考完才造数据,题目没有子任务之类的玩意,O(Tn^2)暴力ac了T<=100,n<=10000,这符合基本法吗)
day-3~day-1
  感觉期中考完挂
day0
  学校考完期中考放假一天,好评
  8:30的东航航班,因为"一带一路"会议,要提前三小时到机场,凌晨三点半起床,这时机场大巴都还没有的,幸好领队老师和coder107同乘一辆车,前一天说好捎了我一程,不然前一晚就要露宿机场了……路上从coder107那里知道了国家队名单,毛爷爷好稳啊。然后coder107给我讲了好几遍spfa费用流,硬是理解不了。六点整到达机场(长水机场没雾真好……),半个小时不到就办完手续,开始两个小时的等待。闲成咸鱼,在机场敲了两个小时的输出质数表……话说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了一路,下车时刚好想出来(也挺水的)。
  早上的课程和网络流的构造有关,然而我是个只会dfs找增广路(FF)的蒟蒻,连有上下界、费用流都不会,听了前10分钟,学到了一个很高大上的技巧:拆点拆变,原谅本蒟蒻之前都没听说过这玩意。一些看似难解的题经过拆点拆边建图后,就可以跑网络流出解了,好妙啊!然而十分钟以后,完全跟不上讲课人的节奏了,懵逼了20分钟,读完ppt上的题毫无想法,讲题人刷刷刷翻着页,我的思路完全跟不上了……心里想回去一定钻研一下“网络流24题”,这玩意冬令营第二课堂(蒟蒻太弱只能去第二课堂了)时听老师提到过,不过好像当时老师只展示了几道裸题,就没在意。半个小时后,索性拿出电脑接着改昨晚的左偏树。看着昨晚眼里貌似没错的代码,我心里想着:啊,天啊,我写了些啥呀!改了几个一目了然的赋错值、语句写错顺序的错误之后,总算过了样例,交到OJ上终于1A了,开心。然后打开了冬令营时候的网络流课件,学习起了EK、dinic,然而只看懂了EK,dinic的分层图smg
  原先一直以为网络流的应用只能是二分图匹配和最大流,用处不大。听了这节课(的前半截)之后我才了解到:原来还有这种操作。千奇百怪的建图方法让我眼花缭乱,到后面还和线性规划联系起来了,我脑子里的线性规划还停留于高中必修数学里画画图就出的来的简单题呢。这次来apio真是值了,大大开阔视野(大视野?),长见识呀!
  中午发了试机密码条,088,挺吉利的啊。结果吃完饭,coder107就到处找密码条(rp问题?),后来听说被别人捡到,拍照发到了某群,寻找失主……用领队老师的话说:就像是别人捡到了一个孩子,到处问是谁家的,恨不得钻到地缝里去(#滑稽)。
  下午讲的东西挺有趣,图像处理的特殊算法,把别人女票从照片里抹了还几乎一点痕迹都看不出来,风景图拉伸压缩后景物居然没变形?!再次长见识。讲到手写输入法时,那三大书法作品"杜甫能动""妇女之宝""好狗边上飘"让我笑了5min。

这句话教育我们不要做电灯泡2333333333

 这句话教育我们不要做电灯泡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可能性挺大的,而且t1的11分可能会拿到,当时他的t1一直迷之变量重名CE,张地主也不知道原因,最后一次交上去还没反馈结果,只能自求多福了,说不定是60分呢。如果他这次拿牌了,那就是我省oi8年多来的第一枚全国比赛奖牌了,好!但是突然想到自己,心情又低落了下来……等待讲题开始期间,coder107给我讲了一下t2的task2、task3的做法,大概就是二分、分块?当时没听太懂。

  讲题时选了个第三排的座位。t1斑斓之地,正解似乎又是特殊方法建图,然后用了某图论算法?没听懂(2018.10.19更新——平面图理论)。t2考拉的游戏,task1大家都在吐槽本来问一次就好的,题目却给两次机会,引导大家想复杂了啊;task2、task3就是coder107讲的方法,但我依然没听懂;task4,询问最多700次,直接套上归并排序stable_sort()(坐我前面那位大佬sort()被卡了,居然卡快排,出题人那啥),用询问结果比较两件物品的价值,作为比较函数,然后……没了?task5,全场神犇讨论活跃,几位说他只用了96次询问,另几位上台又说了个只用83次的方法,听得我一愣一愣的。t3是什么spfa+二分?这姿势没掌握过,回去看看课件研究一下…………

  下午和coder107一起去吃饭,吃完饭等coder107玩手机1h+,到学校门口,大巴载着其他神犇开走了(这句话来自hzwer博客),剩下的没几辆了,等待发车期间,coder107离开方便去了,这时司机要发车了,我通过老师联系他,结果老师电话占线10min,多次努力后,总算召唤到了coder107,感觉rp++。

  晚上回到酒店,luoyuqi考了127,%%%%%%,请教了一下t3的spfa+二分是什么鬼,大佬的解释没太懂,不过好像能二分的都要满足某种单调性?

  老师打电话来询问情况,大概说了一下,老师说:“算了,考完了,别太难过,就当是为国赛积累经验吧。”

  国赛?我进省队了?好像是的。得知这个消息,没有很兴奋,从以为自己退役了到现在过去了两个星期,心情早已平静。如果是10天之前,我也许会高兴吧,但是现在我感到的是沉甸甸的压力。文化课自从上学期期末考以来就没什么进步,这方面肯定要花时间(停课似乎不可能,这在我们省阻力太大),上学期学业水平考试语文没考过A,还要复习准备重考,现在oi实力只能在省内混,拿到全国范围内什么都不是。

  就算我这次拿到了所有期望分数,距离铜牌线都有4分的差距,除非发挥好点再拿到t2task1的4分,顶多是个压线Cu,一不小心就不是了。所以下半学期任重而道远啊。//我当时怎么知道的Cu线是39?因为这段是后面写的。

  晚上和luoyuqi大佬一起看了猩球崛起2。

  睡觉前反思了一下这次比赛的发挥情况——

  首先是实力因素,平时训练不够,连很基础的Floyd都忘得差不多了,其次广搜写炸了也应该是不熟练的原因,身在弱省,平时训练还不如人家努力,怎么可能有好的结果!

  其次是比赛时的策略、技巧问题,比赛和刷题训练真的不一样。想起前天晚上调了一晚上的左偏树,昨天一眼就发现了那些很愚蠢的小错,这说明比赛时代码查错能力缺乏。我平时几乎不打比赛,只是刷OJ上的题库,遇到难题想不通,就用搁置的方法处理,搁置一个星期再去看,就迷之会做了;再或者就跟那些难题硬刚,刚上一整个周末,总会做得出来。平时训练我总是执着地攻克一个个知识点,比赛时这种执着就很不好,比赛时间5h,没时间搁置,也没时间执着,这不是学习、训练,而是比赛,实力弱的选手比赛就应该以最快速度拿下自己该拿的分数,可能多出点时间再去尝试多拿下一些点。用训练的策略来比赛,不爆炸才怪。

  决定回去以后就尽量多打些比赛,适应比赛的节奏,没有比赛的时候就加紧训练,掌握些更能拿分的姿势,没条件训练的时候就搞搞文化课吧,再或者在草稿纸上推一推算法,距离国赛只有有70天了……想着想着就睡着了。

day3

  由于day4星期一要上课,跟学校只请了星期五的假,买了晚上21:30的航班,晚上闭幕式都来不及参加就要去赶飞机了,一大早就去前台退了房卡,心里有些惆怅(可能用词不当吧,反正心里不太好受)。

  今天上午讲的是多项式,前两个月自学FFT时查了很多关于多项式的资料,这节课是我听得最好的一节课。冬令营第一课堂讲多项式时本蒟蒻和同学溜到第二课堂去听模拟与贪心了,那些什么插值、行列式什么的就不太会,顶多会一个O(n^3)的高斯消元加减消元暴力插值。老师讲了些高级的姿势,高斯消元居然在某些情况下会WA?天哪。O(n^2)的拉格朗日差值公式看着有点恐怖,但似乎插值很方便啊。似乎老师讲这个是要求不定积分?不管了,记下来过后慢慢研究。

  午饭时一份套餐居然收我7张饭票?!迷之饭票用完,可能是之前在哪里掉了吧,其他人居然剩下的那么多……

  莹莹老师真好,送了我几张让我不至于吃不上晚饭……

  下午讲DFS遍历无向图,可以听一下,投影亮度、清晰度差评,就在课间找老师拷贝了一份课件,想在自己电脑上看。开机后发现,早上记多项式的笔记把电脑的电用光了,无语……只能仔细辨认投影屏了。又掌握了一个姿势——如何判断一个无向图有无偶环?大概是分两种情况:有返祖边就是一个环,判断统计这个环上有几个点即可(反到的祖先深度-当前点深度+1),课间还很愚蠢第去问横切边构成的环呢,老师也耐心地给我解答了无向图没有横切边;第二种就是看一个点是否属于两个不同的奇环,就是判断一个点是否在"8"形环的中间,且"8"的上下两个环均是奇环,那么一整个"8"就是一个偶环。至于判断是否有奇环,只需黑白染色判断图是否为二分图即可,因为“一个图是二分图”等价于“一个图没有奇环”。掌握的姿势又多了,开心。之后讲O(n)动态改图,输出dfs树?太过高端完全跟不上。听说这题被我国数据结构选手毛爷爷用动态树切了?%%%

  下午靠老师支援的饭票吃了晚饭,听到Cu线是39分,那么coder107的至少49不就能Cu了?恭喜!但是没时间参加闭幕式了,老师只能请其他省的老师帮忙收着了。

 

  坐出租去机场的路上,看着北京美丽的夕阳,心里胡乱地想了很多……

  到机场才知道,航班因为一带一路晚点到23:00,无奈等待…………

  到家已经凌晨5点了,彻夜未眠,还要在两小时后去上课?做不到。索性又请了一上午的假在家补觉。

往后

  //这两个月多掌握一些姿势吧,能打的比赛尽量打,提高一点算一点。

  我要以更好的状态投入到奋斗中,为70天后的国赛拼尽全力不后悔!

网友评论

登录后评论
0/500
评论
wawcac
+ 关注