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,n≤100
也完全不会啊。于是疯狂码农写了三棵线段树【你问我为啥不是四棵?
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
不是
2n−1
?我也不知道咋挂了。然后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
倒是很简单,从大到小贪心一下就可以了,但是
n≤10
的呢?我好像只会
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++了。