5.12模拟赛赛后总结
赛时历程
早上8:05,预处理结束。
开始看T1,题意比较奇怪,花了时间理解了之后发现30分暴力特别好写,正解的瓶颈可能在数的处理上,或者说有我不知道的trick。
8:45打完了暴力。然后开始看后边的题。
太难了,自闭良久,T2的10分能全排列吧,但是好像有点难处理。
10:00的时候尝试T3。 先尝试了一个dfs,发现复杂度爆炸。
已经11:00了,然后尝试了一个双指针,有骗分的成分,赛后发现果然WA了。
最后想搞区间DP,但是搞到只剩转移的时候,就剩两分钟,心态炸了。
30分爬了。
赛后发现
1 中午睡醒后发现T3就差一个转移方程。而且一分钟就能搞定。不过就算有了这30分也不会提高我的名次。
2 T1使用set来存储二进制位。毕竟只有1e5个位上有数字。
3 这套题金牌选手一个半小时就AK了。
4 还是菜。不过得保持好心态。不然只能更菜。稳定输出应该会好起来的。
简单题解
想着得做一道就通一道题的思路。所以打算在简单题解多总结一点trick。
T1 启发式合并,二进制的集合表示。
虽然这道题内的数值是(2^{10^{18}})级别的,但因为数全是准确的单个2次幂,所以可以考虑只存这个点上集合的二进制位的集合,为了保证有序,要采用set来存储,这样就能够进行这道题需要的数值的加和以及大小的比较了。
T3 是利用SAM结构进行的状态转移,然鹅我SAM学艺不精,感觉看着有点含糊。等复习一波SAM再来。
(待删除的tag,到订完T3删除)