省选
2017年4月23日
流水账式游记,不喜勿喷.
Day0:
准备出发,上午敲了一顿板子,板子敲完了就打小游戏,老师也不管了.
过程中各种奶,说什么今年一定考仙人掌啦,今年一定考字符串啦,今年一定不考FFT之类的.
高二的同学都有点亢奋.毕竟最后一战了(~~).
中午jzyz四人组吃了一顿聚餐.算是最后的道别,当然,不知道是谁与谁的告别.
下午两点上车,3点半左右到达,幸好车上有空调,否则我们都要煮熟.
在宾馆休息了一会儿后,四点左右去试机了.
试机不错,调试了机子后,发现机子除了慢,并没有什么其他问题.
对拍什么的经过调试也无大碍.很顺利.
工作人员看起来也很负责,为了解决蓝屏问题将win7换成了xp,并且加了一些不错的软件.
心情一片大好.
回宾馆的路上,与队友讨论了一番今年的题目可能会出成什么样子,各种立flag.
晚上看小说看到10点睡觉.
做梦梦到了好几次看到了成绩单,但是画面模糊,没有看到我的名字,很好,没影响心情.
Day1:
早上7点起来,叫醒syq,又浪费了很多时间后,差点没吃上饭.
进考场,果断敲各种bat,makedata.cpp,right.cpp备用.再敲上常用的空白程序板子.
题目下来了;
T1:求去掉哪些边后,最大独立集的数目+1.输出可以去掉的边.(题意已经翻译).
数据范围n到了10000,m到了150000.
O(m*dinic(复杂度))枚举肯定不行,先标记个暴力50分吧.
这时候我心情就有点紧张了,第一题会不会是个SB题?但我没过多研究二分图,无法找到性质,怎么办?
郁闷的看第二题.
T2一个后缀数组题目,但多组询问,n到了1e5询问,1e5
又是这种感觉没什么思路的题,但暴力40 n^3还是很好搞的.
T3:这不是某年WC的题目吗?处理所有环,然后扔线性基,玩个线性基最大值就行了.
结果发现位数到了1000,我了个擦,一次线性基复杂度惊人.
而且多组询问,每条加入边存在于一个区间,删除转分治就行了,但是如何计算加入一条边的贡献,GG.
还是暴力,搞个玄学暴力吧.
看完三道题,一点思路没有全是暴力,顿时抑郁了.
然后剩下三小时码暴力.
网络流,码起来容易.手玩小数据+眼查没问题就放一边了.
后缀数组我昨天试机就敲了一遍,再次敲完,没问题,敲了40拍完写T3.
第三题本来由于不开O2想着自己写个压位的Bitset,但是写到一半感到了恶心,替换成bitset算了.
写写调调终于写完了T3.测了下样例一遍过,自己又够了几组数据没问题.
不放心,把bitset换成int测一下,没问题,再眼查一下,不管了.
然后这时候就已经快结束了,但马上延时了半小时.
开始检查,发现第二题开个5000*5000数组搞个前缀Max即可优化到nQ,有60分.
最后也就把三道题的暴力交了上去.
出来,惊!stdcall直接就说问有多少个上两百的,Mike说他们做过第一题原题(后来我听数据范围不一样).
好几位大神说自己要退役了,但实际上我感觉没什么,上午大家都暴力嘛,拉不开分的.
吃完饭,回去很快就又开考了.
这时候心情已经完全放松了,准备好好搞下午,争取AC一道.
发下PDF.发现出题人各种锅,PDF上有很多错误,但还好不影响做题.
第一题一眼DP,但状态转移不好做.
第二题看完前半部分发现是个SB题,然后紧接着发现他换了比较规则(这出题人坑啊).
没什么想法,20暴力吧.
认为第一题更可做,准备全力搞第一题,虽然第一题看上去我也找不到转移的规律.
先暴力码码.码完发现题意理解错了,每次是三个维度选一个加上一些1,而不是随意加.
好,题目简单了不少.每个维度单独算,做DP即可.
直觉上这道题和二进制中的1有很大关系.
打个表看了一下后发现结论对了,然后想怎么状态转移.
写了个log4 n的预处理,但调了很长时间调不对.
这时候发现已经3点20多了,离结束只剩一个小时了,第二题暴力还没打.
决定到半点再调不出来就弃了.
看了遍程序猛地意识了自己之前的错误思路还残留在程序里.
改掉,我直觉上,这次没问题了.测了几个手玩点,正确了!
这道题,最困难的部分已经解决了.
解决了转移问题,但还有障碍点问题(我后来才看到这玩意).
不虚,直接套棋盘模型,但这么DP是o^2的.
上NTT?没法上啊,都不是卷积上个鬼.
难道是预处理转移搞分治NTT?算了没时间了,总比20分强.
干脆写个记忆化吧(保佑数据水一点,o^2不要跑满).
写完第一题拍完,去写第二题,暴力码了20分,然后眼查一下,就开始等结束.
考试终于结束了.
然后就是等成绩,中间听老师说上午最高的是我的90分,60分的2个,40一大堆.
Mike等表示自己上午第二题写完拍完怎么着都不可能跌下60,怎么60分的这么少.
感觉HA省又要出事故了,提心吊胆.
和syq讨论了一下下午第一题,他的DP是O(o)的,我认为我的DP没问题.
等到下午6点多,成绩出来了.从台阶上跳下去一看,发现自己rnk1了,然后看同校神犇的成绩,发现jjh和syq以及wyj都进队了.省队还有Mike,rapiz等,能进省队的人都很熟悉.
然后就是看成绩分布,上午90,下午70,上午第一题第三题出错很正常,所以我也没怎么纠结,下午o^2被卡成50也在意料之中,很强的一点是syq下午近乎A掉了第一题.
我很纳闷,难道我的DP是错的?还是那个DP还可以优化?
接下来很多选手说上午的第二题的60对拍没问题,上午分却很低,不科学.我也觉得不是很对劲,HA又要出锅了.
但天快黑了,我们必须走了,拷走了上午数据后坐大巴出发.
在回去的路上,stdcall在通讯上提出空间开小了,发现一看确实如此,老师就拿电脑开始重测.重评完了上午150,正常了.
Day2-4
最近几天确实过得很无语,因为河南省计算机协会一直不发最终成绩,我们也很心乱.
虽然从我们自己测的成绩我是没问题的,但结果最终会影响我们学校的.
同时这几天也爆出了一些锅:
1.内存开小
2.没开忽略制表符和行末空格.
(HACF怎么这么不走心呢?这些都是lemon非常需要注意的啊,我来搞评测绝对不会在这种问题上出锅).
3.下午第一题数据过水,所有障碍点都不影响最终答案.
(正解居然O(o^2),卡常技巧先进啊).
(最后我用最强的数据测我的程序,是会被卡一些的常数的,但我写了记忆化,所以复杂度近乎O(o)了).
(我猜出题人没看出来自己的数据的问题,否则这样卡常是会被裱的).
4.下午第二题数据过水,我的原来是准备水20的程序水了60.
2017-04-26
终评成绩出来,评测结果与本校评测结果差不多,我认为差不多算是个结束了.
jjh和qyj准备申诉,但是我认为申诉理由并不是很充分,因为数据的话,只能说不好,不能说错误了.
对此事我中立.当然也可能是我不是当事人感受不深吧.
HAOI算是结束了,这件事也可以告一段落,下一步就是CTSC和APIO了,这些日子HAOI也确实影响了很多人,确实到了干些实事的时候了.
以后再见了!
(我第一次写这么长的游记,很赞啊).