• 曼哈顿距离 \(\text{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

  • \(x\bmod m\) 除了拆成 \(x-\lfloor\frac{x}{m}\rfloor\times m\) 还可以拆成 \(x-km,(k\in \mathbb{Z})\)。arc 111b

  • 像什么 第 \(i\) 个人对应第 \(p_{i}\) 个物品,\(p\) 是 \(1,\cdots,n\) 的一个排列这种,直接连边。arc 111c / some abc d

  • 对应上一条,这种情况连边一定是一个这样 \(i\rightarrow p_{i}\rightarrow p_{p_{i}}\rightarrow\cdots\rightarrow i\) 的环。arc 111c

  • 一个平面上有一堆点 \((x_{1},m),(x_{2},m),\cdots,(x_{n},m)\)(\(x_{i}\) 单调递增),找一点 \((n,m)\) 使得 \(\sum\text{dist}((x_{i},m),(n,m))\) 最小,则 \(n\) 的取值范围是

    \([a_{\lfloor\frac{n+1}{2}\rfloor},a_{\lfloor\frac{n+2}{2}\rfloor}]\)。cf 1486b

  • 字符串本质不同子串数:\(\sum_{i=1}^{n}n-sa_{i}-ht_{i}+1=\sum_{i=1}^ni-ht_i\) / \(\sum_{i=0}^{n-1}n-sa_i-ht_i=i+1-ht_i\)。bzoj 4310

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

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

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

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

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

  • \(i\times j=\binom{i+j}{2}-\binom{i}{2}-\binom{j}{2}\)。loc 28870

  • 答案和阶乘相关的,并且模数长得很怪,比如 \(998857459=461\times773\times2803\) 这种,当 \(i\ge2803\) 时,\(i!\bmod998857459=0\)。loc 28853

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

  • 序列分段可以先考虑平方 DP 再优化。csp 2019 partition / ctsc 2012

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

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

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

  • \(a\&b+a\oplus b=a|b\); \(a\&b+a|b=a+b\);\(a+b=a\oplus 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

  • 出现 \(a\mod p=b\mod p\) 时,等价于 \(a-b\equiv0\pmod p\),对应到 \(a_i\equiv a_{i+1}\equiv\dots\equiv a_j\pmod p\),就考虑差分。cf 1548b (cf 1549d)

  • 出现形似 \(a\times b\) 为完全平方数的限制时,考虑消除平方因子,弱化成 \(a=b\)。cf 840c

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

  • \(\sum_i\sum_j[(i,j)=x]=\varphi(\lfloor\frac{N}{x}\rfloor)\times2-1\)。

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

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

  • 若题目为序列的变化,考虑构造终止情况。

  • dp 刷表看看转移范围是否连续,可以看是否能整体 dp 维护。

  • 同一个图的 MST 每种权值的边的数量是一定的。cf 891c

  • 区间操作考虑差分(指题目中对各种序列的操作,不是那种数据结构题)。cf 1120d

  • 数列全为零等价于差分序列全为零。cf 1634f

  • 判定一个点是否在多边形内可由这个点以任意斜率拉出一条射线,看交点奇偶性。cf 375c

  • 数的出现次数的 mex 可以暴力求。cf 940f

  • 排列题可以放在逆排列里考虑,重新描述问题。wc 2022 rrads

  • 上上一条,不同出现次数的级别是根号,很多时候都可以考虑暴力。cf 1476g

  • 出现概率的和式考虑事件是否独立构造组合意义。cf 1523e

  • 和式 = 某个数,考虑看成某个数个 1 然后分配(精度思维)。hdu 7060

Record -「Tricks」记录的更多相关文章

  1. 所有 Python 程序员必须要学会的「日志」记录。

    本文字数:3840 字 阅读本文大概需要:10 分钟 写在之前 在我们的现实生活中,「日志记录」其实是一件非常重要的事情,比如银行的转账记录,汽车的行车记录仪记录行驶过程中的一切,如果出现了什么问题, ...

  2. 「2014-2-6」TokuMX and MongoDB related materials collection

    简介参考 TokuMX 和 MongoDB 各自的官方站点.       ##  Tokutek 最重要的特点和 marketing word 是所谓 fractal tree indexing te ...

  3. 「MoreThanJava」计算机发展史—从织布机到IBM

    「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 ...

  4. 「译」JUnit 5 系列:条件测试

    原文地址:http://blog.codefx.org/libraries/junit-5-conditions/ 原文日期:08, May, 2016 译文首发:Linesh 的博客:「译」JUni ...

  5. 「2014-3-18」multi-pattern string match using aho-corasick

    我是擅(倾)长(向)把一篇文章写成杂文的.毕竟,写博客记录生活点滴,比不得发 paper,要求字斟句酌八股结构到位:风格偏杂文一点,也是没人拒稿的.这么说来,arxiv 就好比是 paper 世界的博 ...

  6. 「2014-3-17」C pointer again …

    记录一个比较基础的东东-- C 语言的指针,一直让人又爱又恨,爱它的人觉得它既灵活又强大,恨它的人觉得它太过于灵活太过于强大以至于容易将人绕晕.最早接触 C 语言,还是在刚进入大学的时候,算起来有好些 ...

  7. 「2013-9-5」Configure WingIDE for better display of East Asian Glyphs

    很久没写软件配置相关的博客了.这次对于 WingIDE 在 Windows 下的字体配置,折腾了好一阵子,略曲折,也反映了「不清楚原理和背景的情况下,盲人摸象的效率低下是必然」这条放之四海而皆准的赤果 ...

  8. React + Node 单页应用「二」OAuth 2.0 授权认证 & GitHub 授权实践

    关于项目 项目地址 预览地址 记录最近做的一个 demo,前端使用 React,用 React Router 实现前端路由,Koa 2 搭建 API Server, 最后通过 Nginx 做请求转发. ...

  9. 「插件」Runner更新Pro版,帮助设计师远离996

    三年多前Runner团队在德国汉堡的骇客松上第一次发布了Sketch插件Runner的beta版本.从那以后,这个团队的目标一直很清晰: 创造一个加速设计工作流的工具. 他们只给Runner添加真正能 ...

  10. 「NOI2013」小 Q 的修炼 解题报告

    「NOI2013」小 Q 的修炼 第一次完整的做出一个提答,花了半个晚上+一个上午+半个下午 总体来说太慢了 对于此题,我认为的难点是观察数据并猜测性质和读入操作 我隔一会就思考这个sb字符串读起来怎 ...

随机推荐

  1. Java(break、continue、label)

    1.break break在任何循环语句的主体部分,均可用break控制循环的流程.break用于强行退出循环,不执行循环中剩余的语句.(break语句也在switch语句中使用) 例如:循环输出10 ...

  2. R 语言绘制环状热图

    作者:佳名来源:简书 - R 语言文集 1. 读取并处理基因表达数据 这是我的基因表达量数据: 图 Fig 1 > myfiles <- list.files(pattern = &quo ...

  3. 现代 C++ 性能飞跃之:移动语义

    *以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/Xd_FwT8E8Yx9Vnb64h6C8w 带给现代 C++ 性能 ...

  4. 纠删码技术在vivo存储系统的演进【上篇】

    作者:vivo 互联网服务器团队- Gong Bing 本文将学术界和工业界的纠删码技术的核心研究成果进行了相应的梳理,然后针对公司线上存储系统的纠删码进行分析,结合互联网企业通用的IDC资源.服务器 ...

  5. STL-array(ACM)

    1.C++ 11 出现的, C++98没有 2.可以作为数组元素 pair<array<int, 3>, int>pair<int a[3], int > 不能这样 ...

  6. 前端分页组件简单好用列表分页page组件

    快速实现 简单好用列表分页组件, 分页器组件,用于展示页码.请求数据等 ,包含翻页. 详情请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12 ...

  7. Windows 环境下Docker 安装伪分布式 Hadoop

    1.环境 Windows 11 Docker 20.0.2 2.拉取镜像 我选择 ubuntu20.04: docker pull ubuntu:20.04 然后我们用命令看一下本地镜像: docke ...

  8. Web网页音视频通话之Webrtc相关操作(二)

    效果图 HTML <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  9. [HUBUCTF 2022 新生赛]simple_RE

    [HUBUCTF 2022 新生赛]simple_RE 查壳,64位 找main函数,F5查看伪代码,简单分析一下 int __cdecl main(int argc, const char **ar ...

  10. Java List集合根据某字段去重

    去重方法 单个字段为条件去重 /** * 单字段去重 * @param jackpotList1 新集合 * @param jackpotList 需要去重的集合 * @return */ priva ...