Result:90+10+0+20=120
T1:期望100,实际90
T2:期望0,实际10
T3:期望0,实际0
T4:期望100,实际20
复盘:
0~20min:读完题x4,发现T1和T4相对可做,T2、T3不可做,直接弃掉。
20min~1h20min:发现T1有同余性质,把所有同余项合到一起,跑一次线性dp。
每个点最多被处理一次,因此复杂度\(O(n)\)。
1h20min~2h:狂写T4
2h~4h:各种debug,挂了
Ans:
T1:正解就是拆出同余项+在每个同余项之中dp,memset太多次所以TLE了最后一个点。
把memset改成顺着原来的增加方式往回清空使用过的dp值。
T2:正难则反,考虑二分距离,用距离x2连边,判断是否能封死(即连通)。
至于为什么要求路径是曲线?是为了便于通过点之间的空隙。
T3:不可做,弃之。
T4:先发现一个性质,整个比赛过程相当于二叉树,\(a[i]\)在叶节点连续递增时有最优解。
因此先排序再区间dp\(O(kn^3)\),最后决策单调性优化\(O(n^2)\)。
经验总结:
。。。
最后一道题调了太久,且要求尽量多写正解和高分暴力之后,有一个误区。
就是正解一定是一次写出的,而事实是正解往往是高分暴力+优化。
当然某些情况下也是只靠推导某些结论以得出正解。
因此以后要注意模型的提取和结论的分析。