Record -「Tricks」记录
曼哈顿距离 \(\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」记录的更多相关文章
- 所有 Python 程序员必须要学会的「日志」记录。
本文字数:3840 字 阅读本文大概需要:10 分钟 写在之前 在我们的现实生活中,「日志记录」其实是一件非常重要的事情,比如银行的转账记录,汽车的行车记录仪记录行驶过程中的一切,如果出现了什么问题, ...
- 「2014-2-6」TokuMX and MongoDB related materials collection
简介参考 TokuMX 和 MongoDB 各自的官方站点. ## Tokutek 最重要的特点和 marketing word 是所谓 fractal tree indexing te ...
- 「MoreThanJava」计算机发展史—从织布机到IBM
「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 ...
- 「译」JUnit 5 系列:条件测试
原文地址:http://blog.codefx.org/libraries/junit-5-conditions/ 原文日期:08, May, 2016 译文首发:Linesh 的博客:「译」JUni ...
- 「2014-3-18」multi-pattern string match using aho-corasick
我是擅(倾)长(向)把一篇文章写成杂文的.毕竟,写博客记录生活点滴,比不得发 paper,要求字斟句酌八股结构到位:风格偏杂文一点,也是没人拒稿的.这么说来,arxiv 就好比是 paper 世界的博 ...
- 「2014-3-17」C pointer again …
记录一个比较基础的东东-- C 语言的指针,一直让人又爱又恨,爱它的人觉得它既灵活又强大,恨它的人觉得它太过于灵活太过于强大以至于容易将人绕晕.最早接触 C 语言,还是在刚进入大学的时候,算起来有好些 ...
- 「2013-9-5」Configure WingIDE for better display of East Asian Glyphs
很久没写软件配置相关的博客了.这次对于 WingIDE 在 Windows 下的字体配置,折腾了好一阵子,略曲折,也反映了「不清楚原理和背景的情况下,盲人摸象的效率低下是必然」这条放之四海而皆准的赤果 ...
- React + Node 单页应用「二」OAuth 2.0 授权认证 & GitHub 授权实践
关于项目 项目地址 预览地址 记录最近做的一个 demo,前端使用 React,用 React Router 实现前端路由,Koa 2 搭建 API Server, 最后通过 Nginx 做请求转发. ...
- 「插件」Runner更新Pro版,帮助设计师远离996
三年多前Runner团队在德国汉堡的骇客松上第一次发布了Sketch插件Runner的beta版本.从那以后,这个团队的目标一直很清晰: 创造一个加速设计工作流的工具. 他们只给Runner添加真正能 ...
- 「NOI2013」小 Q 的修炼 解题报告
「NOI2013」小 Q 的修炼 第一次完整的做出一个提答,花了半个晚上+一个上午+半个下午 总体来说太慢了 对于此题,我认为的难点是观察数据并猜测性质和读入操作 我隔一会就思考这个sb字符串读起来怎 ...
随机推荐
- 从 0 到 1 搭建自己的脚手架(java 后端)
一.脚手架是什么 脚手架是一种基础设施工具,用于快速生成项目的框架代码和文件结构.它是一种标准化的开发工具,使开发人员能够在项目的早期阶段快速搭建出一个具备基本功能和结构的系统. 二.脚手架的意义 主 ...
- Python3.9安装
一.安装python3.9 链接:https://pan.baidu.com/s/1mDkgKt2KSoMrKVxesb76Pg?pwd=ma4n 提取码:ma4n --来自百度网盘超级会员V4的分享 ...
- 前端检测手机系统是iOS还是android(可实现根据手机系统跳转App下载链接)
快速实现前端检测手机系统是iOS还是android(可实现根据手机系统跳转App下载链接); 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plug ...
- vue-router之hash与history,以及nginx配置
本篇讲解前端项目的路由模式(以vue-router为例),以及history模式下的项目部署问题. vue-router的路由模式可以通过指定mode属性值控制,可选值:"hash" ...
- 聊聊JVM虚方法表和方法调用
作者:小牛呼噜噜 | https://xiaoniuhululu.com 计算机内功.源码解析.科技故事.项目实战.面试八股等更多硬核文章,首发于公众号「小牛呼噜噜」 大家好,我是呼噜噜,好久没更新文 ...
- 《设计模式的运用》使用策略模式+工厂模式优化代码中的if else
使用策略模式优化if else 有这样一段逻辑 function{ for{ if() if() if( if( ) ) ... } } 公司有的祖传的代码,是一段规则校验,校验的越多,每一个请求都会 ...
- 【SpringBoot】定时任务
SpringBoot实现定时任务 SpringBoot创建定时任务,目前主要有以下三种实现方式: 基于注解(@Scheduled): 基于注解@Scheduled默认为单线程,开启多个任务时,任务的执 ...
- 现代C++(Modern C++)基本用法实践:N、其他零散的常用特性
概述 这一篇简单介绍一些其他的比较实用的特性,如果读者想了解现代C++的全部特性,参考:cpp reference 其他特性 预置和弃置函数default&delete 在 C++11 中引入 ...
- Blazor前后端框架Known-V1.2.5
V1.2.5 Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行. Gitee: https://gitee.com/known/Known Gith ...
- Unity UGUI的CanvasScaler(画布缩放器)组件的介绍及使用
Unity UGUI的CanvasScaler(画布缩放器)组件的介绍及使用 1. 什么是CanvasScaler组件? CanvasScaler是Unity中UGUI系统中的一个组件,用于控制画布的 ...