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


    我太难了

    比赛思路

    传送门

    • 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=wisum 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除了题意就是一道水题。。。但是我因为打错了一个字符调了两天。。。心态崩了。
  • 相关阅读:
    xss学习笔记
    【转】Python中的正则表达式(re)
    数据隐藏技术揭秘笔记
    几道排列组合题的总结
    Notepad++来比较文件
    快捷键总结
    进制转换
    leetcode刷题(三)
    leetcode刷题(二)
    leetcode刷题(一)
  • 原文地址:https://www.cnblogs.com/DeepThinking/p/13090940.html
Copyright © 2020-2023  润新知