【CPS-S2019模拟】10.23比赛总结

情到浓时终转凉″ 提交于 2019-12-02 08:40:14

我太难了

比赛思路

传送门

  • T1:因为n显然是给你n方的,所以n2枚举一波,然后发现对答案的贡献是一个段连续的区间和,差分两次就好了。
  • T2:随机游走???猛推一波随机游走的式子,完全靠yy,正确性显然没有,所以就没有打。然后发现直接高斯消元有60分。
  • T3:题意都没懂。。。

赛后消化

  • T1数组开小gg。
  • T2优化一下常数就n3水过去了(没有梦想的我不配拿多40分)。从叶子往上倒着高斯消元就好了,因为用i消j,i儿子已经没有了,剩下与i有关的只有i的父亲和爷爷的位置上有值,而j的这两个位置上也一定有值,所以消父亲的时候不会多出一些位置从0变成了别的。时间复杂度和正确性就能够保证了。
  • 实际上T2还有nlogn 的做法。
  • T3,实际上求的是一个最大的d,使得
    idwiS=d,S=wi\sum \frac {|i-d|*w_i} {S} =d,S=\sum w_i
    然后假设 f(d)=idwidSf(d)=\sum {|i-d|*w_i}-d*S,要使得f(d)=0f(d)=0
    发现这是一个单调递减的函数,因为如果d变大,前面的增量比后面的小。
    二分找零点前的整数,用树状数组维护和就可以找到。
    再解个方程就好了。

总结

  • 数组一定要检查大小。
  • 注意观察题目性质,期望题高斯消元真的是最常规的套路呀。
  • T3除了题意就是一道水题。。。但是我因为打错了一个字符调了两天。。。心态崩了。
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!