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

    T1:
    树剖,分情况讨论当前root与操作节点的位置关系
    1.u,v的lca -> lca(u,v),lca(u,root),lca(v,root)中dep最大的点
    2.(tree_u)的权值和 -> 若u不在1-root的链上,(siz_u)。否则,v是u到root链上u下方的第一个点,(siz_1-siz_v)
    特别的,root的ans为(siz_1)

    T2:
    考虑实际含义:
    每个格子有一个权值,每一列格子的权值都是相同的。
    从一个起点开始,每次可以向上走一格或者向左上角走一格,直到走到最上面一行为止。
    你需要最小化经过的格子的总权值。
    首先最优路径显然是先斜着走到较小的那一列,然后再一直向上走
    所以我们设(g_y(i,x))表示考虑到第y列,从(x,y)开始斜着走到i列再顶到头的代价
    (t_y(x))表示表示考虑到第y列,从(x,y)开始走到顶的最小代价
    (g_y(i,x) = sum_{i,y} + (x-(y-i+1))*a[i])
    (t_y(x)=min_{i=1}^y{g_y(i,x)})
    发现当y一定时,g函数是一个关于x的一次函数,而t函数则是一个由g拼成的凸包
    而当y增大时,g函数只有截距会变化
    所以可以将询问离线下来,从大到小枚举y,每次插入一个一次函数,维护凸包即可。

    T3:
    生成函数+FFT 咕了

  • 相关阅读:
    dubbo学习总结二 服务端
    dubbo学习总结一 API
    mybatis中的#和$的区别
    Spring boot配置注意事项
    dubbo 学习
    框架发展过程
    使用OkHttp模拟登陆LeetCode
    Java设计模式——建造者模式(创建型模式)
    Java设计模式——单例模式(创建型模式)
    Java中static的用法
  • 原文地址:https://www.cnblogs.com/Gkeng/p/11791081.html
Copyright © 2011-2022 走看看