zoukankan      html  css  js  c++  java
  • csps模拟测试56

      好题。

      T1:

      对于这个神奇的题目,首先可以推出对于$sum k*x+sum b$,表示最后我的选择集合,

      那么若k小于0,我可以用判断0是否符合来搞,

      k大于0,直接二分答案即可,让它尽量小,用$nth$函数可以实现$O(n)$。

      二分答案贪心验证。

      T2:

      系数递推?

      首先每个点的$w[x]=a[x]*w[1]+b[x]$就是一定能用根节点表示一下。

      然后我就可以对于给定的两个点列关于x和1的两个方程,如果有整数解那么输出否则判断是多解还是无解。

      那么接下来主要是维护b,其实b最一开始是通过根到节点系数递推出来的,但是鉴于本题的柿子简单,他可以写成+-+-+-+-边权的形式,因为他有更改的操作,对于每个边有一个权值,一个点的b值应该是从该点开始到根,把+-+-+-,自己到父亲的+,在往上是-,然后是+,直到到根位置,那么问题就出现了,对于一个点他的b值是他父亲的b值取负+父亲边,那么所有边的系数都变负了。出现了两种,深度为奇数的点

    和深度为偶数的点。所以我维护一个从根到每个点的+-,根是+,对于一些点是对的,对于一些点要取负。

      支持单点查询和区间修改,这个题改一个点子树都要改,所以可以维护dfs序区间修改。

      线段树会被卡常,需要把b在根据dfs序差分一下放到树状数组上。

      T3:

      扫描线gggggggg

  • 相关阅读:
    TBalloonHint 提示
    Delphi 结构体常量的定义
    editplus的用法
    Delphi中的容器类
    delphi XE5 UnicodeString的由来
    Delphi:TObject简要说明-对象的创建流程
    Java 反射之私有字段和方法详细介绍
    Java之画图板浅析
    java中的AlgorithmParameterSpec接口
    Java抽象类简单学习
  • 原文地址:https://www.cnblogs.com/starsing/p/11625042.html
Copyright © 2011-2022 走看看