• 曼哈顿距离 \(\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. C/CPP在命令行中生成DLL文件

    简单的写一个C调用DLL(动态链接库)的例子. 创建3个.c文件备用 test.c 1 #include <stdio.h> 2 3 //这里声明,表示来自dll文件. 4 extern ...

  2. MySQL中都有哪些锁?

    MySQL中都有哪些锁 为什么需要锁 在计算机系统中,锁(Lock)是一种同步机制,用于控制对共享资源的访问.它确保在任何给定时间内只有一个线程能够访问受保护的共享资源,从而避免了由并发访问导致的数据 ...

  3. celery笔记四之在Django中使用celery

    本文首发于公众号:Hunter后端 原文链接:celery笔记四之在Django中使用celery 这一篇笔记介绍一下如何在 Django 系统中使用 celery. 如果是想纯粹使用 celery, ...

  4. 【HMS Core】【In-App Purchases】应用内支付热门FAQ合集

    ​近期收到很多开发者关于应用内支付服务的相关问题,主要集中在以下几个方面,今天和大家分享一下,希望给大家的开发集成带来帮助. [问题描述1] 近期,很多开发者收到关于"全面限制HTTP类型回 ...

  5. Prism进入视图时导航的三种方式

    Prism导航 新建视图UserControl及其ViewModel,被跳转的视图的VM需要实现INavigationAware 在App.xaml.cs中注册视图及其ViewModel // App ...

  6. 获取邮箱(QQ、126、163)的客户端授权码

    获取QQ邮箱的客户端授权码 1.首先登录QQ邮箱(https://mail.qq.com),然后,点击"设置"按钮. 2.点击"账户"按钮,进入"账户 ...

  7. APP流水线测试领域探索与最佳实践

    1 背景 APP端UI自动化因其特殊性(需连接测试机)一般都在本地执行,这种执行方式的局限性有以下弊端: 时效性低:研发每次打包后都需要通知测试,测试再去打包平台取包,存在时间差 研发自测或产品验收无 ...

  8. 我不知道的threejs(6)-开发中的容易被忽略的

    在threejs Editor中调好一些样式属性后, 可以直接选择导出具体的格式,或者导出成json[json 一般体积大很多,比glb](场景,通过objectLoader 加载json!!!) 自 ...

  9. Python安装time库失败?不是吧阿sir你还不知道内置模块不用下载吧

    嗨嗨,今天给python安装time库,一直报错,换源等办法都试过了 直到我看到 Python中有以下常用模块不用单独安装 random模块 sys模块 time模块 os系统操作 re正则操作 js ...

  10. C语言基础-基础指针

    文章目录 指针 前言 1.什么是指针 2.指针的使用 (1)指针的定义 (2)指针的赋值 (3)指针类型 (4)如何使用指针 3.野指针 (1)导致野指针的原因 ① 未初始化指针 ②指针越界访问 ③指 ...