[笔记]Important Tricks And Lemmas

news/2024/11/28 21:35:36/文章来源:https://www.cnblogs.com/Link-Cut-Y/p/18575295

图论

  • 对于图路径的构造,常常思考是否可以对叶子节点进行某种配对。按照 dfs 序对节点进行配对是考虑的方向之一。例题 P7320 「PMOI-4」可怜的团主,P4665 [BalticOI 2015]。

  • 树上路径的交是路径。路径满足边数等于点数 \(-1\),通常可以做某些神秘容斥。例题:2024 省选集训 Day8 B。

  • 对于图论中,在出题人数据造的很弱的情况下,将每个点的入度 \(\times\) 出度进行阈值分值是个很好的办法。

  • 树上点集 \(\mathcal{S}\) 的公共 \(\operatorname{lca}\) 即为 \(\operatorname{lca}\) \((d_{\min}, d_{\max})\),其中 \(d_{\min}, d_{\max}\)\(\mathcal{S}\)\(\mathrm{dfs}\) 序最小和最大的两个节点。

  • 树上点带颜色,想到根号分治、虚树和点分治。一车的 ABC G。

  • 对于点数很少且带限制的最短路,可能用 \((\min, +)\) 矩阵快速幂。

  • 完全图最小生成树一定用 Boruvka。

  • 对于树上任意三个点满足 \(dis_{u, v} + dis_{v, w} \ge dis_{u, w}\)

  • 一个图的所有环的交最多有两个点!

  • 如果 \(\operatorname{lca}(u, v) = x\),那么 \(u, v\) 中必有一个在 \(x\) 的轻子树中。

  • 最大团 \(=\) 反图最大独立集。例题 AGC067A。

  • 对于图的构造,常常想到构造:链、菊花、毛毛虫。两个菊花拼起来似乎比较常考。例题。

DP

  • 对于看不出来的计数 dp,对某行 / 某列上拉插可能有用。例子:2024 正睿某题。
  • 分段 + 最小化 / 最大化题目,通常有转移 :\(f_i = \operatorname{\min/\max}\limits_{j < i} \{f_j +cost(j, i)\}\),其中 \(cost(j, i)\) 通常是一个与 \(i\) 有关的函数。该 dp 大概率是凸的,或者可以斜率优化。例如 P3628 APIO2010。
  • 常常对 dp 状态数量进行分析。这并不困难,并且有时可以发现状态数很少。例子:Universal Cup, Jinan 2023 B。
  • 当遇到某个物品不能选,考虑对前后缀分别做一次 DP,然后再在当前位置合并。本质是缺一分治
  • 环形转移通常会设未知量消元。不要认为只能高斯消元,可能转移层数少的时候只设一个未知量就可以解出一层。ABC333F。
  • 常见的计数 DP 转移技巧:每个位置对答案有一个贡献系数,可以通过贡献系数做带修 DP。例题:ZR24 NOIP day4。
  • 整体 dp,以及贡献法(考虑每个位置对答案的贡献之和)是常见的办法。
  • DP 转移时常常钦定一个转移顺序,如钦定从小到大转移。例题:CF53E(钦定从编号小的叶子向大的转移),P7961 [NOIP2021] 数列(钦定后一个填的数比前一个大)。

数据结构

  • 数据结构题修改的位置有特殊限制,需要考虑位置数量是否可以势能分析。P10516 数据结构。
  • 对于数据结构题,如果二次求和(\([l, r]\) 子区间和的和),可以考虑每一个数对全局的贡献。例题:P4458 链上二次求和。
  • 当实在不会做数据结构题的时候,立即思考分块 / 根号分治 / 阈值重构

数学

  • 随机游走大概率需要高斯消元。
  • 集合划分的方案数是 \(\mathbf{Bell(n)}\) 级别的。当 \(n\) 很小的时候可以考虑暴力集合划分。例如:Yet Another String Matching Problem。
  • 某图形中点的计数:将每条线段 \(l\)\(x\) 投影 \(l'\),并计算 \(l-l'\) 围成封闭图形中点的个数。求图形中的点个数可以容斥。
  • \(\dbinom{n}{m} \equiv 1 \pmod 2 \Longleftrightarrow m \operatorname{and}n = m\)
  • 一堆数的线性基等于其异或差分的线性基。这可以支持异或线性基的全局异或。
  • 两个数的乘积是平方数的充要条件:其质因数分解指数模 \(2\) 后相等。

字符串

  • 本质不同的回文串数量是 \(O(n)\) 级别的。寻找本质不同回文子串的方法:以每个位置为中心从大到小枚举回文子串,并且扔到哈希表里。如果出现过就 break。
  • 回文串的循环节也是回文串。ARC064D。

构造

  • 对于网格图上的构造,常常想想是否能够蛇形构造,同心环构造等。P10509。
  • 对于序列变换的构造(\(a \rightarrow b\)),可以考虑随机排列 \(p\),并且实施 \(a \rightarrow p\)\(p \rightarrow b\) 的过程。在随机数据下可能会有优秀的性质。例题P7734 01 串。
  • 对于约束不是很强的题,随机调整是不错的选择。
  • 对于图路径的构造,常常思考是否可以对叶子节点进行某种配对。按照 dfs 序对节点进行配对是考虑的方向之一。例题 P7320 「PMOI-4」可怜的团主,P4665 [BalticOI 2015]。
  • 网格图构造黑白染色。黑白染色构造方案代价和一定则必有一种小于等于代价和的一半。AGC066A。

其他

  • 随机数据下的最优点对:利用大致在三等分点附近的性质,将询问离线进行分治。数据随机下区间点对最优化的乱搞。
  • 在序列上的若干区间,若任意两区间之间没有包含关系,则将所有区间按照左端点排序,右端点也一定是升序的。没有例子。
  • 限制为某区间内某些颜色需要出现,则考虑记录每种颜色最后出现的位置。如果时空复杂度太高,可以去掉一维,只记录与当前位置颜色不同的。ARC074E。
  • 必要性探路。通过将充分性转化成某些必要性可能有新思路。如 \(\operatorname{matrix}(\mathcal{A}) \times \operatorname{matrix}(\mathcal{B}) = \operatorname{matrix}(\mathcal{C})\) 是否成立的判断。
  • \(1 +2 +3 +\cdots +\sqrt n \ge n\) \(\longrightarrow\) \(\displaystyle \sum_{i = 1}^{k} a_i = n\),则本质不同的 \(a_i\) 只有 \(O(\min\{k, \sqrt n\})\) 种。CF95E。
  • \(\varphi(d) \mid d\) 时,\(d\) 可以表示成 \(2 ^ a 3 ^ b\) 的形式
  • 当把一个序列变成某个数字时,并且每次操作只能把数字 \(+1\) 或者 \(-1\),那么这个时候变得这个数字就是中位数。
  • 一堆给定的函数任意排列求复合最值考虑贪心。当为一次函数的时候根据 Exchange Argument 排序,即按照 \(f_1(f_2(x)) > f_2(f_1(x))\) 排序。ABC366F。
  • 二进制一定拆位。ABC366E。
  • \(n \le 150\) 才敢用退火!!!
  • 看到平均数,中位数,分数果断二分。
  • 随机交换优于临项交换。例题:P7962 [NOIP2021] 方差。
  • 看到子树加减,路径加减立刻树上差分。例题:P11189 「KDOI-10」水杯降温。
  • 汉诺塔步数 \(2 ^ n\)
  • sum-sum-interval 考虑每个点对答案的贡献。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/843089.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【java编程】Xalan ClassLoader

Xalan 是 Java 中用于操作 XML 的一个库,它是 Apache XML 项目的一部分,主要用于将 XSLT(Extensible Stylesheet Language Transformations)转换为可执行代码,从而实现XML文档的转换。 XSLT 的理解 当然了, 我们先理解该模块如何使用之后, 我们再研究它的妙用, XSLT 说白了…

[游记]CSP2024 游记

这是一篇迟到的游记,为什么呢?因为作者已经成为文化课选手了。 Day-1 晚上 \(6:00\) 到了宾馆,在路上准备了一下面基事宜。在车上昏昏沉沉,结果下了车精神抖擞了。 简单布置之后开始摆烂,这是符合考前规范的好事。某游戏连跪十五局。rp -- 。我希望这是给我第二天攒 rp。 …

[笔记]动态规划优化(斜率优化,决策单调性优化)

本文主要记录某些动态规划思路及动态规划优化。 首先先把以前写过的斜率优化祭出来。 斜率优化 \(\text{P5017 [NOIP2018 普及组] 摆渡车}\) 经典例题。 设 \(f_i\) 表示最后班车在 \(i\) 时刻发车,所有人等待时间和的最小值。(这里的所有人是指到达时刻小于等于 \(i\) 的所有…

基于Java+SpringBoot+Mysql实现的点卡各种卡寄售平台功能设计与实现一

后台功能:寄售管理、提现管理、订单管理、认证管理、公告管理、用户管理等。 该系统总共21张表,代码整洁,每个功能、接口上都有注释说明。 部分功能:前台用户信息实体类Entity、实名认证信息实体类Entity、银行卡类型信息实体类Entity、寄售卡类型信息实体类Entity、寄售卡…

【java编程】BCEL ClassLoader

BCEL 介绍 BCEL的全名应该是Apache Commons BCEL,属于Apache Commons项目下的一个子项目。Apache Commons大家应该不陌生,反序列化最著名的利用链就是出自于其另一个子项目——Apache Commons Collections。 BCEL库提供了一系列用于分析、创建、修改Java Class文件的API。就…

借助电脑探究双变量函数问题侧记

记录一次借助电脑探究双变量函数问题的全过程前情概要 偶尔看到下面的习题,想到以前自己整理的双变量函数问题,尝试练手时发现,寻找思路不是很简单的问题,探索一番,对整个过程作以记录,成篇为一侧记 . 典型案例 【2025届高三数学月考3第12题】对于函数 \(f(x)=e^x-x^2+a\…

Paypal最新版本 paypal-server-sdk 使用案例(前端 Vue3 + 后端Spring Boot )

背景 在项目中对接Paypal支付,一开始在网上查了好久,发现资料少,而且陈旧,甚至我都没弄清楚我应该哪个SDK。 我到 maven 中央仓库中,搜索 com.paypal.sdk,能查出不少结果,据我所知,至少有三个sdk可以从后端访问到Paypal:paypal-core:非常陈旧,2016年就停止更新了,但…

【java编程】URLClassLoader

从上面我们研究【java编程】双亲委派模式时进行Debug了源代码, 可以发现的是, URLClassLoader是ExtClassLoader && AppClassLoader的父类(不是父亲), public class Launcher {static class ExtClassLoader extends URLClassLoader {}static class AppClassLoader exten…

秒杀系统

前言 秒杀大家都不陌生。自2011年首次出现以来,无论是双十一购物还是 12306 抢票,秒杀场景已随处可见。简单来说,秒杀就是在同一时刻大量请求争抢购买同一商品并完成交易的过程。从架构视角来看,秒杀系统本质是一个高性能、高一致、高可用的三高系统。而打造并维护一个超大…

.NET周刊【11月第4期 2024-11-24】

国内文章 C# 入门深度学习:万字长文讲解微积分和梯度下降 https://www.cnblogs.com/whuanle/p/18551532 这篇文章主要介绍了使用 C# 进行深度学习的方法,特别是微积分在此领域的应用。作者简要讲解了极限、导数等基本概念,并展示了如何在 C# 中实现这些数学运算,例如将一个…

高级程序语言第九次作业

这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/2024C 这个作业要求在哪里:https://edu.cnblogs.com/campus/fzu/2024C/homework/13311 学号:102400204 姓名:刘嘉奕不太理解10题a,b两个题目的要求有何不同,一个把值返回该结构,不运用指针,而b要把值赋给合适…

DataSophon集成StreamPark2.1.5

为DataSophon制作streampark-2.1.5安装包.md 下载并解压streampark 2.1.5安装包 StreamPark官网下载 wget -O /opt/datasophon/DDP/packages/apache-streampark_2.12-2.1.5-incubating-bin.tar.gz https://www.apache.org/dyn/closer.lua/incubator/streampark/2.1.5/apache-s…