zoukankan      html  css  js  c++  java
  • Record -「Tricks」记录

    • 曼哈顿距离 ( ext{dist}(A,B)=|x_{A}-x_{B}|+|y_{A}-y_{B}|) 可以拆成 (max{x_{A}-x_{B}+y_{A}-y_{B},x_{A}-x_{B}-y_{A}+y_{B},-x_{A}+x_{B}+y_{A}-y_{B},-x_{A}+x_{B}-y_{A}+y_{B} })AGC 034D

    • 走步数什么的构造题步数限制大约在 (log) 级别可考虑二进制拆分(倍增构造)。ARC 103B

    • (xmod m) 除了拆成 (x-lfloorfrac{x}{m} floor imes m) 还可以拆成 (x-km,(kin mathbb{Z}))ARC 111A

    • 像什么 第 (i) 个人对应第 (p_{i}) 个物品,(p)(1,cdots,n) 的一个排列这种,直接连边。ARC 111C / 某道 ABC D

    • 对应上一条,这种情况连边一定是一个这样 (i ightarrow p_{i} ightarrow p_{p_{i}} ightarrowcdots ightarrow i) 的环。ARC 111C

    • 一个平面上有一堆点 ((x_{1},m),(x_{2},m),cdots,(x_{n},m))(x_{i}) 单调递增),找一点 ((n,m)) 使得 (sum ext{dist}((x_{i},m),(n,m))) 最小,则 (n) 的取值范围是
      ([a_{lfloorfrac{n+1}{2} floor},a_{lfloorfrac{n+2}{2} floor}])CF 1486B

    • 字符串本质不同子串数:(sum_{i=1}^{n}n-sa_{i}-ht_{i}+1)BZOJ 4310

    • 把字符串反转后插入 SAM 后,两个原串的后缀在 parent tree 上的 LCA 是这两个后缀的 LCP。BZOJ 3879

    • 对于树上/图上/序列上数某些个点中满足一些条件的点的个数(像 LCA、重心 之类的),考虑一个点能作为满足条件的点几次。很多

    • 我们记一个结点 (u) 的重儿子为 (hb_{u}),对于 ( ext{subtree}(u)),如果 (u) 不是 ( ext{subtree}(u)) 的 centroid,那么 ( ext{subtree}(u)) 的 centroid 一定在 ( ext{subtree}(hb(u))) 里。CSP 2019 树的重心

    • 根据上一条,我们可以直接倍增找重心(注意只能从根开始找)。CSP 2019 树的重心

    • 值域比较小的关于值域的一些不等或等量关系的题可以考虑把值域放到指数构造生成函数。XG 2016 A+B Problem

    • (i imes j=inom{i+j}{2}-inom{i}{2}-inom{j}{2})LOC 28870

    • 答案和阶乘相关的,并且模数长得很怪,比如 (998857459=461 imes773 imes2803) 这种,当 (ige2803) 时,(i!mod998857459=0)LOC 28853

    • BST 相关,序列有序,([l,r]) 对应 BST 上一棵子树,且其父结点一定是 (l-1)(r+1),具体是哪个要看大小讨论。CF 1025D

    • 序列分段可以先考虑平方 DP 再优化。CSP 2019 Partition / CTSC 2012

    • 有多个关键字的 DS 题可以考虑离线按一个关键字排序。P3247

    • 找递推关系可以考虑差分。P6156

    • (low_{y}leqslant dfn_{x}) 意味着 (x,y) 在一个环。many

    • (a&b+aoplus b=a|b)(a&b+a|b=a+b)(a+b=aoplus b+2(a&b))CF 1451E1

    • (fib(n+m)=fib(n+1)fib(m)+fib(n)fib(m-1))CF 446C

    • 棋盘向 下 / 右 走,很有些性质和 (n+m) 有关,且移动一次 (i+j) 加一,不会存在移动一次 (i+j) 还是 (i+j)。同时在一条从右上往左下的对角线上的点 (i+j) 相同。ARC 120B

    • 操作类似于令 (a(i)leftarrow a(i)-1,a(i+1)leftarrow a(i+1)+1) 然后交换 (a(i),a(i+1)) 的,本质是保证下标,令 (A(i)=a(i)+i) 可以使问题简化。ARC 120C

    • (n) 个元素中连边如果行不通不妨考虑每个元素内部连边。SGU 101 / ABC 209E

    • 有多个元素分别对答案贡献时,如果单个元素的贡献很好算,不妨考虑每个元素的贡献次数。many e.g. ABC 209F

    • 出现 (amod p=bmod p) 时,等价于 (a-bequiv0pmod p),对应到 (a_iequiv a_{i+1}equivdotsequiv a_jpmod p),就考虑差分。CF 1548B(CF 1549D)

    • 出现形似 (a imes b) 为完全平方数的限制时,考虑消除平方因子,弱化成 (a=b)CF 840C

    • (gcd(a,b)=gcd(a+kb,b))unknown

    • (sum_isum_j[(i,j)=x]=varphi(lfloorfrac{N}{x} floor) imes2-1)

    • ((a,b)=1)((a^i-b^i,a^j-b^j)=a^{(i,j)}-b^{(i,j)})

    • 如果一个函数 (f(x))(k) 阶差分是一个非零常数那么 (f(x)) 一定是一个 (k) 次多项式。

  • 相关阅读:
    2716 [Violet 3] 天使玩偶
    BZOJ1017魔兽地图DotR 樹形DP
    BZOJ1016最小生成树计数 最小生成树 + 排列组合
    BZOJ1014火星人prefix Splay維護序列 + 字符串哈希
    BZOJ1010玩具裝箱Toy
    BZOJ1009GT考试 DP + KMP + 矩陣快速冪
    BZOJ1008[HNOI2008]越狱
    BZOJ1006神奇的国度 弦圖染色 最大勢算法
    BZOJ1005明明的烦恼 Prufer + 分解質因數 + 高精度
    poj2182(线段树求序列第k小)
  • 原文地址:https://www.cnblogs.com/orchid-any/p/14256475.html
Copyright © 2011-2022 走看看