首页 > 其他分享 >lg省选计划笔记-基础优化技巧1

lg省选计划笔记-基础优化技巧1

时间:2024-08-05 15:16:58浏览次数:7  
标签:二分 lg 省选 text 可以 偏序 笔记 next 极值

基础优化技巧1

三分

求单峰函数极值点

丢弃极值点一定不在的点,注意不能用于非严格单调的函数。

由于区间长度可以随便取,可以把分段点取得很近,这个时候就相当于二分斜率

前面比0大,极值点处等于0,后面小于0

01分数规划

略。模型特征:

  1. 答案是比率形式(取对数可以把根式和次方转换为乘法,有时有用)

  2. 比率上下项数相同或者可以拆成项数相同的

整体二分

例子:MET-Meteors

若对一个国家来说,直接二分(虽然只有一个国家的时候不需要二分),在每一次检验的时候其实不止能求出一个国家是否满足,而是可以求出所有国家是否满足,则考虑把所有国家一起二分,节省时间。

分治

复杂度分析:按层分析

  • CDQ 多维限制,偏序问题

  • 矩形问题:按长边分裂,即添加限制以简化问题,分裂成两半就能确定跨越的点对必须经过中间

  • 启发式分裂:涉及到点对中间的极值,考虑用极值进行一个划分,然后处理小的那一段对大的那一段的贡献。复杂度只会跟小的那边相关。

    例子:CF1156E,维护一个 map 每次递归传参数,然后在总共的 map 里去掉小的那一段得到大的那一段,这样就可以计算了。(当然此题维护uset是OK的)

  • 分治的位置,是可以自己选的,你可以自己选择特殊点进行限制的施加。

倍增

  • 通过预处理 \(2^k\) 长度的信息然后合并

  • 可重复贡献:对于满足可重复贡献的信息,即重复部分合并对信息没有影响,如 gcd/线性基,此时可以使用倍增。

哈希

  • 将对象映射成为一个数,作为判重、判相等、判存在、用于 dp 下标

  • 字符串哈希:保留需要的特征,不要保留不要的特征,不要用自然溢出,可以随机base加双模数

  • 随机赋权然后异或哈希:

    ABC250E

Trie

  • 支持查询字符串是否出现

  • 支持反映两个字符串的前后缀关系

  • LCA on Trie == LCP

  • 例子:

    First!G:发现可以一一确定每个串是不是最小串,建立偏序关系为图,判断是否全部偏序关系都可成立,即是否有topo序,即是否有环。

  • 求异或最小生成树:在Trie上的每一个点,假如我们已经合并了左边、右边子树里面的所有数,现在要把左边右边合并起来,我们肯定要找两个 lcp 尽可能长的合并,那显然就是从左边右边各找一个数进行合并,我们只要遍历较小那一边的数,在右边查找smallest xor pair 即可。这本身就是 MST 的 Boruvka 算法。

KMP

  • 性质:一个 i ,其 border 是由 next[next[i]],next[next[next[i]]] 等推到来的

  • 失配树:若链接 \(i\to next[i]\) 则构成树。此时从 \(i\) 到根的链给出 \(i\) 的所有 border,则 lca 是最长公共 border

  • KMP 自动机:在一个单字符串上的 AC 自动机。转移指针定义为

    \[\text{trans}_{i,c} = \begin{cases} i + 1, & \text{if }b_{i} = c \\[2ex] \text{trans}_{\text{next}_{i},c}, & \text{otherwise} \end{cases} \]

    这也给出了构建方案。

  • TD HNOI 2019 JoJo

  • 例子:GT考试:容易想到 dp,考虑到不吉利数字很短,转移也只有到下一层的,层数很大,可以尝试矩阵优化,然后就比较简单。

标签:二分,lg,省选,text,可以,偏序,笔记,next,极值
From: https://www.cnblogs.com/haozexu/p/18343290

相关文章

  • 苹果第一款M4笔记本来了!曝M4 MacBook Pro今年秋季亮相
    MarkGurman爆料,M4MacBookPro、Macmini和iMac将在今年秋季上市,其中M4MacBookPro是苹果第一款M4笔记本。他还提到,MacBookAir、MacStudio和MacPro将在2025年更新,届时也会升级M4芯片。据悉,M4由iPadPro首发搭载,采用了台积电第二代3nm制程工艺(N3E),并配备当前AIPC主流的CPU+GP......
  • java笔记4
    7.封装封装是面向对象编程的四大基本特性之一,它将对象的数据(属性)和行为(方法)组合在一起,并隐藏内部的实现细节。何为封装封装是创建对象的过程,确保对象的内部状态只能通过对象提供的方法来访问和修改。访问修饰符private关键字private修饰的成员只能在类的内部访问,不能被......
  • 《数据资产管理核心技术与应用》读书笔记-第一章:认识数据资产
    《数据资产管理核心技术与应用》是清华大学出版社出版的一本图书,全书共分10章,第1章主要让读者认识数据资产,了解数据资产相关的基础概念,以及数据资产的发展情况。第2~8章主要介绍大数据时代数据资产管理所涉及的核心技术,内容包括元数据的采集与存储、数据血缘、数据质量、数据监控与......
  • VisionPro二次开发学习笔记1-创建基于QuickBuild的C#应用程序
    创建基于QuickBuild的C#应用程序使用的QuickBuild应用程序位于%VPRO_ROOT%/Samples/Programming/QuickBuild/advancedAppOne.vpp中。在继续之前,可以在QuickBuild中运行该应用程序。QuickBuild应用程序使用PatMax查找支架的“耳朵”之一,使用CogFixture工具设置图像的......
  • Spring Cloud 学习笔记四:服务网关(Gateway)
    在微服务架构中,随着服务数量的增加,客户端直接与服务进行通信的方式会变得越来越复杂。为了简化客户端与服务之间的交互,同时实现一些跨服务的通用功能(如认证、限流、监控等),SpringCloud引入了服务网关(Gateway)的概念。本篇文章将详细介绍SpringCloudGateway的基本概念、使......
  • 视频笔记软件JumpVideo技术解析一:Electron案例-调用VLC播放器
              大家好,我是TheGodOfKing,是最强考研学习神器,免费视频笔记应用JumpVideo,可以快速添加截图时间戳,支持所有笔记软件,学习效率MAX!的开发者之一,分享技术的目的是想找到更多志同道合的人,如果有大学生加入,我们还允许他把项目作为毕设(只有一个名额哟)群(689978959),那么今......
  • Living-Dream 系列笔记 第74期
    Kobe-Morris-Pratt算法定义一些基本定义:border:是一个字符串的子串(不与其本身相同)且满足既是其前缀又是其后缀的字符串,我们称之为该字符串的一个border。Kobe-Morris-Pratt算法(以下简称KMP算法),是解决字符串匹配问题的一种算法,实际做题中常偏思维,通常用到的只有其中的bo......
  • [学习笔记]后缀数组(Suffix Array)
    后缀数组(suffixarray)是一个通过对字符串的所有后缀经过排序后得到的数组。后缀数组被Manber和Myers于1990年提出,作为对后缀树的一种替代,更简单以及节省空间。它们也被GastonGonnet于1987年独立发现,并命名为“PAT数组”。后缀数组有很多奇妙的性质,这些性质可以帮......
  • 做题笔记
    SortLeftandRight题目传送门SortLeftandRight题目大意给定关于\(N\)的排列\(P\),定义一个操作为选择一个\(k(1\lek\leN)\),然后把\([1,k-1]\)和\([k+1,N]\)都按升序排序。求讲\(P\)变成一个从\(1\)到\(N\)的序列的最小操作次数。带多测。\(\sumN\le2\t......
  • 【笔记】多项式全家桶
    【笔记】多项式全家桶https://www.cnblogs.com/Appleblue17/p/14360752.htmlWarning空间记得开两倍,因为有卷积,最后结果是两多项式长度之和。对于多项式\(F(x)\),Templatep.s.一般函数最开始是输出数组,后接输入数组,及其长度。namespaceNTT{ constintgen=3; intr......