• 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

  • 相关阅读:
    数据库面试题
    网络编程_TCP协议_客户端与服务端
    29-街道最短路径问题(哈曼顿距离)
    60-安慰奶牛(最小生成树)
    20-集合问题(并查集)
    59-算法训练 操作格子 (线段树)
    58-最小乘积(基本型)
    11-vector的使用
    20-取石子动态规则(hdu2516 斐波那契博弈)
    19-格子游戏(hdu2147博弈)
  • 原文地址:https://www.cnblogs.com/starsing/p/11625042.html
Copyright © 2020-2023  润新知