SXOI2017游记

Day 0

去做了生物实验,捏葡萄很酸爽。
晚上去折腾那个叫什么THUSSAT的报名,导致我树剖的板子没敲完。

Day 1

早晨竟然不到十点就醒了。稍微吃了点东西就去看板子,本来计划把昨天的树剖写完,但是并没有心情。于是到博客上看板子。看到一半就开始水知乎了,比如“OI比赛中有哪些常用的常数优化技巧”。吃完饭怕下午犯困又喝了一杯咖啡。
还有将近半个小时就被放进了考场,进去立马敲了FFT、LCT、SAM和SA。SA敲了一半发现好像不太会写,实在不行就拿SAM建吧。然而这些一个也没考。
看题。这部分分给这么多,又要成暴力大战了?T1好像不难,但是暴力也不好写,先看T2吧。一眼看出毕姥爷出题。这暴力真好写,写完一测样例挂了。原来中间不能取模。这题能做?还是看T3。题目写得很吓人,但是暴力好像挺好写。为了确定我没看错题先把样例二写了个程序跑了一下。没有问题。于是 30 分到手。
回去看T1。第一眼觉得最后截止时间一定跟某个同学的要求一样,于是样例二死活算不出来。本来都想举手了,后来一想,我都敲完一个暴力了才回来看T1,要是T1有问题肯定别人早就提了。于是继续算。原来那个结论是错的。
这不就是从两边开始一头加一头减吗?哦 c=1016 好像会爆long long,那我还是判掉吧。码完愉快地过掉了样例。又写了一个 O(n2) 的枚举终止时刻的暴力,拍了几组WA了。原来终止时刻还可能比最早的课程还早。然后发现只需要把暴力改一改用前缀和后缀和维护一下就可以了。于是A掉T1。
T2完全不会啊。没有修改的和只修改一次的我会。 30 分。 p=2 不就是区间覆盖 1 吗, 10 分。 p=3 好像大力讨论一下也可以, 10 分。 p=4 ?算了太复杂了,不写了。 m,n100 也完全不会啊。于是疯狂码农写了三棵线段树【你问我为啥不是四棵? c=1 不是可以合在一起写吗】, 50 分到手。考完看了一下,写了5KB。
T3好像很简单啊,前两天数学课不是刚做了差不多的题?但是把式子列出来就发现并不会推。这线性组合数暴力有 60 分,这么说我上 200 了。 p=2 并没有发现奇偶的规律。反正只有 5 分,也懒得想了。 k=1 k=2 不就是二项式定理?我昨天上数学课刚学了。于是T3有 75 了。这样 100+50+75=225 ?看上去不错。
吃完饭没过一会就出成绩了。 100+40+70=210 。倒是跟我想的差不多。noip Rank1 SilverNebula 225 继续Rank1。隔壁石二的成绩也出了,gzz 285 差点AK好强啊。ysq、cxc、yzy和Monster_Yi都上 200 了。于是去复测。先看T3, k=2 不是 2n1 ?我也不知道咋挂了。然后T2。 p=3 好像挂了一个点,但是 p=2 里面 c=0 是什么鬼?不是说好的 c>0 吗?
然后毕姥爷开始讲题了。听说T1标程是三分?于是我愉快地起来讲了线性做法【这不是比三分更简单吗】。T2只见姥爷在写字板上打下一堆 φ 里套 φ 再加 φ 的东西。这题没做出来不亏。于是我就问了题上不是说 c>0 吗?毕姥爷说明天造数据重测。或许能多 5 分?T3正解好简单啊。不过以前都是拿组合数公式优化dp,这次竟然用dp求公式?真是好题。

Day 2

路上十分好走,提前四十分钟就来了。于是在考场外面晃悠了半天,跟他们猜今天一道图论、一道字符串、一道数据结构或者dp。进场以后先把SA敲完,然后不知道该干啥了。要不然写个费用流?还没写完就发题了。
T1题面真长,但是看懂就会发现出题人只不过把人话换了一种方式说出来。一眼看出树形dp。在纸上列了列,好像要维护七八个东西?算了看部分分也不少还是暴力吧。T2又是毕姥爷出题。这题目名字咋跟D1一样?看完前几段还以为是博弈论,读完发现又是一道数学题。这 n=k 倒是很简单,从大到小贪心一下就可以了,但是 n10 的呢?我好像只会 O(23n) 高斯消元啊。算了 50 分也不错。T3好像是个dp? n 这么小随便搞一搞就行了吧。
T1好像可以 O(n5) 枚举两条路径暴力?先敲上再说。本来以为这个东西很好优化,但是想了想没什么思路。于是写了 O(n3) x=1 O(n) x=2 。再把完全二叉树搞出来就有… 80 分了?于是打了一个 1 30 的表。恩,看起来很有规律。画出来?数个数?把二进制位列出来?好像并没有什么规律。算了 75 也不错【你问我为啥是 75 ?我当成一个点 5 分算了】。
T2还是不会啊,让我先来看看 k=0 怎么做。干脆随机化把 n=4 的表打出来。嗯很好,没有规律。算了还是拿 50 走人。
T3先写了一个我也不知道复杂度是多少的搜索。很容易发现选的区间没有包含关系,这样 m=0 不就可以 O(n4) 暴力dp了?看了一下算上暴力可以拿 75 ,也不错了。写完拍了拍改了改。
时间还早我决定搞一搞T2。还是不会推公式。试试蒙特卡洛?发现连样例都过不了。还是算了。这样的话就是 75+50+75=200 ?看上去不错。临走的时候毕姥爷宣布我、chaijing和SilverNebula D1T2多了 5 分。其实也差不多。
中午去吃火锅,还没吃完老师就催我去学校。去了一看Rank1,难道D2翻盘了?算了算总分还是没有SilverNebula高,不过进队是稳了。再看小分, 28+80+80=188 。后面两题多出来的就不管了,T1咋才 28 ?不管了还是先听讲题。先讲T2。难道我已经误了一道了?听完以后跟D1结论一样,没做出来不亏。一群人写了 50 80 ,看来数据水了。T3正解网络流?我压根没往那边想。然后毕姥爷打开了T1的课件。原来这题最后讲。果然是码农树形dp。
讲完题我打开结果,看见第一个WA的点是 8 。手测,肉眼比对,没啥错?fc一下,过了!于是赶紧上去找毕姥爷。毕姥爷边念叨要出事边给我测。果然过了。毕姥爷看了一遍代码并没有发现什么不对。我又手测了 9 11 ,都过了。于是毕姥爷带我到评测机那里,arbiter一测依然 28 。于是开Wall编译,发现我有一个函数最后没有返回值(应该返回 0 )。在Windows上过了,但是到了Linux上就挂了。看来下次【不过我想了想,也没有下次了】要申请用Linux啊。
就这样吧,因为我是一个唯物主义者,就不祝自己RP++了。

猜你喜欢

转载自blog.csdn.net/sdfzyhx/article/details/70537107