Day -不知道多少
第一轮
题出得挺好,终于没有鬼畜的CCF赞歌了
考得还行
Day -1
复习了Tarjan并伪证了一遍,然后颓废了
安利E17大失败
放了几十个满贯
给某同学科普了一些不好的东西,现在他好像自闭了 我谢罪
Day 0
继续肝Tarjan然后想自闭了
于是写了个左偏树,调自闭了
下午看了今年的博客 发现鸽子本性暴露无遗,跟去年完全没法比了……
看了几篇题解,越看越内疚,就关了
不敢写下去了
Day 1
(直接跳到发题)
密码认真思考……emm……
打开题,一股表达式树的气息扑面而来
T1啥玩意啊
T2啥玩意啊
T3啥玩意啊
……
仔细读题
T1好像是模拟
T2树上括号匹配子串个数?
T3……?
8:30开始写
把构造方法都告诉你了,模拟无误……
模鬼啊,2642^{64}264
下意识地转成二进制发现是个SB题,切了
8:45
T2一眼DP
用回文树的思想乱搞一下……
然后越推越自闭
……先考虑链的情况
……发现没什么区别
然后冷静下来,重新推一波,推出了一个O(n4)O(n^4)O(n4)的优秀DP做法
开始思考括号序列的性质
情况复杂是因为两个可以拼成一个
然后发现如果把一个不能拆分的合法子串称为一个"基本串",那么一个位置结尾最多有一个基本串。
证明:
反证法,设某个位置结尾有两个基本串,设为SSS,TTT,其中∣S∣≤∣T∣|S|\leq |T|∣S∣≤∣T∣
由基本串定义,TTT的前∣T∣−∣S∣|T|-|S|∣T∣−∣S∣位一定不合法
考虑括号序列的求法:将每个字符入栈
因为SSS合法,所以在栈中会消完,所以剩下的是TTT的前∣T∣−∣S∣|T|-|S|∣T∣−∣S∣位,和TTT合法矛盾。
然后用栈维护基本串在哪里,记录栈顶和栈大小,回溯的时候还原
写出来一发过小样例美滋滋
……然后WA了中样例
造一组小的测出来不对,调试发现栈顶写成了栈大小……
修改后过了中样例
测大样例
激 寒 营 业 不 可 避
什么垃圾样例啊
……然后爆栈了
……然后发现忘了扩栈命令
于是开虚拟机测过了
丢了不管了
9:40
T3一眼不可做
……暴力10分差评
想了个显然的贪心,然后显然挂了
思考了一下完全没思路,10:20
骗分吧
先写个O(n!)O(n!)O(n!)
链的情况好像可以直接贪心?
写一波发现很精神污染
11:00
大脑一片混乱,于是上了个厕所(雾)
回来马上发现可以分治(大雾)
写出来不停WA,被排列过去映射过来搞晕了
把条理理清之后过了自己写的样例
……再测一组WA了
心态崩了,不写了
11:30
开虚拟机编译通过
……然后想起了扩栈命令
水过剩下30min
预计100+100+10=210
出来发现全世界都210
Day 2
由于写这篇游记时隔太久,所以忘了很多细节
打开题面,一股硬核的气息铺面而来。
T1阅读题 读了半天读懂了
T2显然不是DP就是神仙贪心
草样例三爆ull了啊
T3断一条边求所有重心标号和
感觉很可做,但就是不会做
这时
对于type=0type=0type=0的所有测试点,保证最后输出的答案≤4×1018\leq4×10^{18}≤4×1018
你真棒
怎么比昨天还难啊……看来错怪D1T3出题人了
开始肝T1
……相当于每行最多选1个,每列不能过半,贡献为选的所有数的积,求总贡献
显然DP
数次读错题,一直在想怎么把所有列的信息压缩,怎么都退不出来
到9:30
……10点钟想不出来就打暴力吧
脑子一闪,注意到“不能过半”,这个性质一直没用
会不会有什么特殊性质?
不能过半什么意思?就是比其他加起来都多
也就是最多只有一列过半!
然后容斥就可以了!
设f(i,j)f(i,j)f(i,j)表示当前在第iii行,最多的一列选了jjj个的方案数
写了一半发现完全假了,要确定哪一列最多
设f(i,j,k)f(i,j,k)f(i,j,k)表示当前在第iii行,第jjj列选了kkk个的方案数
写出来死活过不了样例
唉……?
好像某一行可以不选
可是不选的不统计入总数啊
于是极其硬核地设f(i,j,k,l)f(i,j,k,l)f(i,j,k,l)表示当前在第iii行,第jjj列选了kkk个,一共选了lll行的方案数并推出了极其硬核的方程
iii滚一下就可以了 复杂度O(n3m)O(n^3m)O(n3m) 可能卡得过去?
然后写出来极其硬核的代码,还是过不了样例
10:00
上个厕所,回来一眼就发现下标输错了(弥天大雾)
然后顺利过了所有样例
然后造一组极限数据T了
重新算一下,过得了才有鬼了……
于是只有84分 感觉很近了,但就是想不出来
10:30 弃了
后面只能暴力了……
T2推了一下毫无进展,于是直接O(n3)O(n^3)O(n3)dp艹36分走
T3直接暴力拿40,然后链似乎很好做 共计55
(实际上后面完美二叉树也水得要死)
预计84+36+55=175
那我上不了400啊……
粗略看了一下好像水不了多少分了
于是Linux编译测空间走人
–End–
公无渡河。
公竟渡河!
渡河而死;
其奈公何!