做题过程
先读题。
T1想到了把答案计算转为求一棵树中一个点到其他所有点的距离和的问题。
T2看到模下的意义和样例后就决定暂时放下…
T3看到数据范围,算了下最长的字符串的长度,发现有
4∗10208
左右,就觉得可能要找规律或者矩阵乘法快速幂。
看完题后,先打了T1的60分暴力,每次要重新建树。然而100%的数据最大的树的节点数会很多,建树是不现实的,我就卡在这了,没想到用分治递归。我想的是求出关键点,然后维护关键点间的距离等值,但是没想到什么好的方法维护(想到就跟正解差不多了),最后只好交了60分的暴力。
T3打了暴力,然后发现到了某个
i,|Si|≥m
时,答案就确定了,然后并没想到答案跟
n
无关…(没特别注意题目数据范围中给的
最后一个多小时看T2,看懂题目后,60分的dp还是很好打的。然而题目那个关键点没说清楚(对,就是那个出局概率不算被砍出局的),然后一直没过样例。调试各种恶心…最后调的时候改了一下计算对答案贡献的dp值的上下界,发现能对
k≤1
时的数据…就以为我dp有问题,时间也不多了,就交了。
结果
60+0+30
T2改了那个地方后能拿60分。
总结
注意题目转化后的模型,想新问题要想深点,联想广一点。
对于一些数据的使用和弃用要把握好。
对于T2这种题,某大神说他考时也被坑了,然后半个多小时的微调,最后试样例,对着自己求出的答案数组和dp数组跟样例输出做差比较,终于找出了坑…这种方法要学习。
题目 & 题解
T1:http://blog.youkuaiyun.com/lzxzxx/article/details/48292335
T2:http://blog.youkuaiyun.com/lzxzxx/article/details/48293125
T3:http://blog.youkuaiyun.com/lzxzxx/article/details/48294233