今天打模拟赛的时候没有困
但现在(9:20pm) 开始特别特别特别困 头昏的那种困
难道我有一个体力槽么) 集中精神的时候会消耗体力 睡觉可以恢复体力)
今天的题感觉出的很认真 充分可想可写
时间安排
8.00-9.00
看看题 编了一下T1 的树形dp 编了一下 T2 的1分 开始做T3
先是各种奇奇怪怪的贪 然后靠拢正解
9.00-10.00
贪了一会之后开始冲正解 过了样例
然后把T2写了
10.00-11.30
写T1 然后灵机一动 “这不就是个max+卷积!”
兴奋极了猛写过来max+卷积并不能NTT
然后max+卷积的做法只有凸包合并 但dp值不凸 打扰了
12.00-13.00
检查了一下三分 想着既然我不是很会不如拍一下 然后开始人生少有的对拍 然后一拍就出问题了)
最后二十分钟心态炸裂 抱着试试看的心态改了一个三分的等于号 结果就对了对了对了…
然后交了一发 罚时吃满
题目分析
T1
dp 考虑 f [ x , i , j , o p ] f[x,i,j,op] f[x,i,j,op] 表示以 x x x 为根的子树内 选 i i i 个联通块 用了 j j j 的体积 x x x点选/没选
复杂度 n 2 k 2 n^2k^2 n2k2
upd
正解是考虑树背包是值域范围 所以应该改成加物品 然后用可以保证log深度(方便维护信息)的树剖/淀粉树来做
感觉没犯啥错 这个技巧还是第一次知道
T2
不懂 只会暴力
upd
平衡树 这种维护段的题还是有一些的 (比如SD集训那个),但是我不太会做, lxl在zr群里发了三道 甚至还包括sd集训题)
T3
目的是让平均数和中位数差得尽量多 所以考虑枚举中位数 位置为 i i i
那么选的数 要么是 [ 1 , 1 + l e n − 1 ] [ i , i + l e n ] [1,1+len-1] [i,i+len] [1,1+len−1][i,i+len] 要么是 [ i − l e n , i ] [ n − l e n + 1 , n ] [i-len,i][n-len+1,n] [i−len,i][n−len+1,n]
然后可以注意到 平均数是一个单峰函数 可以三分
斜率为0只会在最高点处出现
upd
还好拍出来了 有一个细节: 三分不能做中间有斜率为0的部分的函数 以及 整数三分区间长度小于3时直接暴力for