首页 > 其他分享 >技巧小记

技巧小记

时间:2024-09-21 22:46:07浏览次数:8  
标签:LCT hash 技巧 可以 维护 树上 dp 小记

跳跃

  • 带修可以考虑 \(\sqrt{n}\) 分块维护
  • 若是跳次数超多可以考虑倍增维护
  • 很多有循环/置换环的东西可以把一次转换看成“跳跃”

dp抽象

  • 网格图抽象:把状态看做网格图上的点,观察性质

  • 分层 dp 抽象:把每层画出,把转移边画出,看是否能通过平移等做内联 dp

子集枚举

for(S=(1<<n)-1; S; S--)
	for(k=S; k; k=S&(k-1));

\(O(3^n)\)

LIS 最长上升子序列

  • 分层技巧:对每个 \(i\) 以 \(f_i\) (以 \(i\) 结尾的 LIS 长度) 分层,可以用来做很多东西。P7931
    • 注意到一个性质,每层里面的点是 \(i\) 递增,\(a_i\) (值)递减的,即下降的
    • 考虑构造序列的话有一个贪心:每次 \(k\) 向 \(k+1\) 层选的时候,一定先选 \(k+1\) 层中 \(i\) (下标)最前的,相当于对下次 \(k\) 层向 \(k+1\) 层中选数时,可以选到一个更小的数(而且如果上一次不选最前的,当前这次有可能选不到,因为交错了)

LCT 连通性

LCT维护过动态图联通性 \(\rightarrow\) 如果可以离线的话,我们可以在LCT上维护关于删除时间的最大生成树。当新加入一条边后,树上肯定成环,则只需要删掉环上删除时间最早的那条边即可。

可达性

魔塔

询问一个东西可否可以实现,考虑其可达性,比如夹在 \([l, r]\) 之间就可达,这样只用维护 \(l,r\)

可用于 \(\pm 1\) 折线图,只要存在 \(l, r\) 那么 \(x\in[l,r]\) 都存在

在连续的区间中,最大最小值以下都可达,问是否能有一个排列判定最大值即可CF1895D

区间操作

  • 魔塔
  • 对 \(01\) 串 \(flip\) (每位取反)相当于将每个位置前缀和 \(\times (-1)\)
  • 区间 \(reverse\) 相当于交换维护的前后缀信息,一般要用排名平衡树维护

hash

  • 多用于匹配,可以解决树上问题,序列问题
  • 具有可加可减性,树上路径hash值有的可以直接树上前缀减 系统设计
  • 据说自然溢出 \(hash\) 的碰撞概率为 \(\frac{1}{\sqrt p}\) ,所以可以使用 \(ull\) 据说 \(base\) 要用 \(131\),\(13331\),\(131313131\) 等质数

随记

  • \([s / x] * x = s - s\) \(mod\) \(x > s / 2\)

  • 求总边权,拆贡献,对每条边分别算出现的贡献

串并联图/图的收缩

很多问题是稀疏图,(dp)值可以直接在边上传递,此时看看出入度为 1 的点是否能缩起来 abc372f

标签:LCT,hash,技巧,可以,维护,树上,dp,小记
From: https://www.cnblogs.com/gzyakioi/p/18424638

相关文章

  • 带你0到1之QT编程:十五、探索QSplitter和QDockWidget的简单应用技巧
    此为QT编程的第十五谈!关注我,带你快速学习QT编程的学习路线!每一篇的技术点都是很很重要!很重要!很重要!但不冗余!我们通常采取总-分-总和生活化的讲解方式来阐述一个知识点!码农不易,各位学者学到东西请点赞支持支持!开始部分:总:QSplitter提供的是一种灵活的可拖拉布局方式来管......
  • Shopee虾皮卖家必备:SEO优化技巧
    互联网时代,信息传播方式与途径的变化使得搜索引擎优化(SEO)越来越重要,要在激烈的市场竞争中脱颖而出,提升所提供的产品和服务的关键字词排名是一个必要方法。一、Shopee卖家为什么要注重SEO1.可见度Shopee是东南亚跨境电商中的头部企业,虾皮的竞争程度自然十分激烈。消费者在搜......
  • 一文通Maven :入门配置详解与最佳实践、进阶技巧、项目案例分析、常用依赖
    Maven是我们开发中的基础工具之一,尤为重要。它不仅仅是构建工具,还是项目管理、依赖管理、插件管理的强大平台。本文将通过对Maven配置进行详尽分析,并结合实际项目案例,讨论如何有效配置和优化Maven,提升项目的管理和开发效率。一、Maven基础概念与配置结构Maven的核心......
  • React 与 React (RC):主要区别和迁移技巧与示例
    react是用于构建用户界面的流行javascript库,随着每个新版本的发布而不断发展。在这篇博文中,我们将探讨react18和即将推出的react19(目前处于候选发布阶段)之间的主要区别,提供新功能示例,并为使用react和vite的开发人员提供迁移技巧。目录简介react19的当前状态与......
  • Python 高阶内容:简化代码的终极技巧
    Python高阶内容:简化代码的终极技巧文章目录Python高阶内容:简化代码的终极技巧一Lambda:更直接的Function1常规函数写法和调用2lambda写法二一行`for`能解决的事1常规写法2简写3简写创建字典三一行if-else行天下1常规写法2简写四一行`for+`判......
  • 小红书短剧推广搬运技巧,日入四尾数~~!
    本项目的核心在于小红书平台的短剧推广。其操作模式为:从抖音平台搬运视频内容至小红书,用户在观看视频后,若希望继续追剧,需通过扫描二维码进行充值或观看广告以解锁新剧集。推广者通过用户的这些行为获得搜易。完整版获取:......
  • 提高网站速度,必备帝国CMS优化技巧_文件_数据库
    提高帝国CMS网站的速度可以从多个角度入手,包括优化文件、数据库以及整体的网站架构。以下是一些关键的优化技巧,帮助你提升网站性能:文件优化减少HTTP请求:通过合并CSS和JavaScript文件来减少页面加载时的HTTP请求次数。启用GZIP压缩:在服务器端启用GZIP压缩,可以显著减少传输文件......
  • HarmonyOs DevEco Studio小技巧17 -- 如何设置主题
    系统自带的主题不喜欢,然后自己又不想一个个去设置怎么办?机缘巧合之下,我发现了IntelliJ的IDE的主题也能在DevEcoStudio上用 这里是下载主题的网址ThemesforIntelliJ-basedIDEs|JetBrainsMarketplace这里下载分两种情况 虽然不兼容但是可以用  下载完......
  • HarmonyOs DevEco Studio小技巧19 --函数表达式与箭头函数
    在JavaScript中,函数表达式和箭头函数是定义函数的两种常见方式。函数表达式:函数表达式是将一个函数赋值给一个变量的方式函数表达式的一般形式是:letfunctionName=function([parameters]){//函数体[returnstatement]};简单的函数表达式的示例letadd=fun......
  • HarmonyOs DevEco Studio小技巧18--JavaScript 变量声明与作用域
    在JavaScript中,变量声明和作用域是非常重要的概念。变量声明:var:使用 var 声明的变量,其作用域在函数内,如果在函数外声明,则为全局变量。存在变量提升现象,即在变量声明之前使用该变量不会报错,但值为 undefined。functionexample(){console.log(a);//undefine......