首页 > 其他分享 >插头DP 备忘

插头DP 备忘

时间:2023-05-30 20:56:34浏览次数:37  
标签:插头 联通 备忘 表示法 括号 DP

插头DP 备忘

以前一直觉得没必要学,就是普通的状压,发现不学一下写起来有点难受的。

最好的学习资料大概就是 cdq 的论文了。

原文叫 基于连通性状态压缩的动态规划问题。

最常见的问题形式就是给个网格图,求某种回路或者类似的图形最优化或者计数。

核心思想是把他转化为 \(dp\),需要满足无后效性和最优子结构。

一般的状压是 \(2^n\),这个一般是跑不满的 \(bell(n)\)。

把能继续往下延伸的格子叫做插头,维护的是插头的联通性。

一般来说 \(n\) 和 \(m\) 中一定有一个较小,大概 \(7,8\) 左右。

用 \(S\) 来记录一行的联通性,用最小表示法。(空的记录为 \(0\))

最小表示法有两种。

1.每个连通块都编号,从 \(1\) 开始。

2.和他联通的编号最小值。

我一般用 \(2\)。

转移有逐行递推和逐格递推,一般来说逐格递推复杂度较优。

转移得分类讨论去修改轮廓线,视时限写 \(O(1)/O(m)\),\(O(m)\) 较为好写。

实现方法:转移到新的状态的时候,如果未出现过则扔进哈希标号,哈希可以直接用 \(p\) 进制,便于 \(O(1)\) 维护轮廓线的修改。

小优化:\(2^k\) 进制常数较小,常见 \(8-Based\)。

还存在括号表示法和广义括号表示法。

括号表示法:插头两两匹配,不会交叉,用 \(4\) 进制,\(012\) 来表示括号匹配,\(1,2\) 为 \((,)\)。(有独立插头不用匹配掉的情况可以记为 \(3\))

广义括号表示法:连通块不交叉,但是不止一个,最左侧为 \((\),最右侧为 \()\),中间为 \()(\),如 \(\{1,2,2,3,4,3,2,1\}\) 可以是 \((-(-)(-(-()-)-)-)\)。

染色题,\(4,8\) 联通相关没有插头的概念,维护颜色和联通情况就可以。

非棋盘模型,只有 \(|i-j|\le x\),\(x\) 很小时才有边,也可以联通性状压 \(dp\),例:生成树计数。

剪枝卡常技巧:缩减状态,最优性,可行性两方面入手,再考虑边界情况。

标签:插头,联通,备忘,表示法,括号,DP
From: https://www.cnblogs.com/hellojim/p/17444443.html

相关文章

  • 拉格朗日插值 备忘
    拉格朗日插值备忘拉格朗日插值大概在做一个什么事?用\(n\)个点来表达一个\(n-1\)次多项式\(f\),然后想要在不把多项式的系数表示法求出来的前提下快速求\(f(x)\)。\[L(x)=\sum_{i=1}^ny_i\prod_{j\nei}\frac{x-x_j}{x_i-x_j}\]时间复杂度每次插值都是\(O(n^2)\)。注......
  • dp-runtime去Kafka依赖方案
    背景现有原生kafkaconnectruntime,在客户环境运行遇到诸多问题,问题列表如下:强依赖Kafka集群做任务分配、connector配置信息、connector状态管理、source进度维护等等当遇到数据量大、并行数多,topic数量较多时,可能引发kakfa集群的不稳定包括(节点宕机,controller切换等)从而引......
  • DPU54可替代AU9254串口USB1.1 hub芯片
    产品概述DPU54是一款高性能、低功耗4口全速USB1.1HUB控制器,上行端口兼容全速12MHz模式,4个下行端口兼容全速12MHz、低速1.5MHz两种模式。DPU54采用状态机单事务处理架构,而非单片机架构,多个事务缓冲区,这样减小了芯片的系统响应时间,用最少的硬件资源实现了USB1.1全速传......
  • UDP协议
    UDP协议1.UDP协议的特点无连接性:UDP是无连接的,发送端发送数据时不需要与接收端建立连接,也不会维护连接状态。不可靠性:UDP不提供可靠的数据传输。发送端将数据打包成数据报(Datagram),直接发送给接收端,不保证数据的完整性、顺序和是否到达。高效性:由于没有连接建立和维护的......
  • hdu 2830(矩形dp)
    解题思路:这道题是hdu1505的更加强版本,实际上理解了前面的两道题,这道题很简单了,只是多了一个排序的过程。仔细想想,为什么会是多了排序的过程。因为我们的目标还是找到最大的全1矩阵,那么之前的思路肯定是不变的,关键就在于矩形的列是可以交换的,而且可以交换多次。其实这里不要多去想交......
  • hdu 1506(dp || 单调栈)
    题意:这题是要找最大的矩形面积。解题思路:这题的关键是要找每个条形能够往左和往右能够到达的最大长度。我最开始的思路是单调栈去维护,只要入栈的元素比栈顶元素小,栈顶就要出栈,并且知道其最右能够到达的最远距离。当要入栈的元素已经找到了位置,那么它左边的元素所在的位置就是其能到......
  • hdu 5074(简单dp)
    HatsuneMikuTimeLimit:2000/1000MS(Java/Others)    MemoryLimit:262144/262144K(Java/Others)ProblemDescriptionHatsuneMikuisapopularvirtualsinger.ItisverypopularinbothJapanandChina.Basicallyitisacomputersoftwarethata......
  • 花店橱窗布置(dp)
    题目大意:n束花和m个花瓶(m>=n),一个花瓶最多放入一束花,每束花放入各个花瓶会产生对应的观赏值,要求n束花都必须按给出的顺序从左到右放入花瓶中,求能产生的最大观赏值和相应方案思路过程:1.先考虑求最大观赏值,用dp[i][j]来表示到第i个花瓶时放入第j束花能产生的最大观赏值,......
  • 【Socket】基于UDP的发送端和接收端
    UDP和TCP的差异UDP相比TCP,无需在连接状态下交换数据,因此UDP的server端和client端无需经过连接过程,即不必调用listen()和accept()函数。UDP中只有创建套接字和数据交换的过程。基于UDP的接收和发送函数当创建好TCP套接字后,传输数据时无需再添加地址信息,因此TCP套接字会保持与对......
  • 渗透---WordPress网站
    WordPress简介WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把WordPress当作一个内容管理系统(CMS)来使用。WordPress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的,用......