zoukankan      html  css  js  c++  java
  • csp-s模拟50

    T1:
    首先容易(???)想到最优方案一定是一些建筑高度不变,其他建筑高度填平
    记f[i]表示考虑前i个建筑, 并且第i个建筑的高度不变的答案
    考虑从j转移,中间高度为t,(f[i]= sum _{k=j+1}^{i-1} (t-h[k])^2 + c*(h[j]+h[i]-2t))
    首先t可以找二次函数对称轴快速求出
    其次考虑到两边的高度一定大于中间可以用单调栈来维护有效的转移点

    T2:
    四维偏序或二维莫队

    T3:
    线段树维护树的直径
    然后暴力枚举断边,设两个连通块的直径为(l_1,l_2),则危险程度为(max(l_1,l_2,lceil l_1 ceil + lceil l_2 ceil + 1))
    发现T了,不能每次查询直径,可以在开始时预处理前后缀直径
    考虑如何构造方案,找到两连通块直径的中点,连接即可

  • 相关阅读:
    负数幅角的选取
    记一次py交易
    区间估计
    平方和
    正态总体 下常用结论
    每日一背
    乘积的期望
    java调用javascript
    Java Agent入门
    JavaPoet入门
  • 原文地址:https://www.cnblogs.com/Gkeng/p/11790730.html
Copyright © 2011-2022 走看看