第一次在linux上答题,果然炸了……
上来看到鬼畜的题目目测是数位DP或者反演或者杜教筛的题,发现n<=10^18后算了一下杜教筛和数位DP的时间复杂度,发现并不靠谱,于是目测数位DP。看到暴力分就先放着了。第二题上来看到是在树上乱搞,一下子没什么头绪,目测很好拿部分分。第三题上来就看蒙懵逼了,大概猜了一下n=1的暴力也先放着了。
于是在打完第一题暴力后优先去打第二题,按照先打部分分的原则,依次想出了10、20、30、40、50、70的部分分,并且由70分的树套树成功想出了主席树正解,然而也因为思考和打步骤分废了太多时间,由于对linux运行不太熟练,并没有打对拍,最后被不知道哪里的步骤分卡了5分,真尴尬,话说几乎全世界都A了……
这个时候还剩下一个小时多一点,两个小时不到的时间,决策了一下决定去打第三题,对于n=1直接猜结论,打了十分热乎的manacher算法,然后就对着数据范围想暴力,一开始想裸一点的暴力,直接去枚举每一种串的链接方式,裸着跑manacher,然而算了一下复杂度,发现光枚举将哪几个串相连就是2^n种然后就放弃了,打了一个将每两个串组合以及将一个串自己组合的偏骗分,然而只骗到了5分,结果就是这种无脑骗分还因为清空数组的问题调了半天(其实也因为linux编译运行太费时间)。幽默的是yzh打了一个神奇的暴力:按照数据范围决定固定多少串然后用manacher判断,最后65分,神了……
最后开始打第一题,想了一个神奇的n^2log n骗分,就是将乘积小于k的直接算上贡献,否则暴力计算,事实证明这样不但能骗到15分,而且还能过掉最后2个点。然而并没有什么用,我至今还在奇怪当时为啥没去打数位DP。