首页 > 其他分享 >腾飞 dp【坚决不能咕!!!】

腾飞 dp【坚决不能咕!!!】

时间:2024-03-09 12:34:30浏览次数:19  
标签:发现 le 腾飞 max ne dp sim 坚决

错排计数

给定 \(1\sim n\),求有多少种排列使得 \(p_i\ne i\)。

令 \(f_n\) 代表问题规模为 \(n\) 时的答案。

考虑如何转移到 \(f_n\)。

我们假设 \(n\) 这个数放在了第 \(i\) 个位置,此时 \(n\) 这个位置按照是否为 \(i\) 可以出现两种情况,我们分类讨论。

假设 \(i\) 放在了 \(n\),那么我们只需让 \(1\sim i-1\) 和 \(i+1\sim n-1\) 错排。发现这个东西就是 \(f_{n-2}\)。

假设 \(i\) 没有放在 \(n\),那么我们会有一个 \(p_n\ne i\) 的限制,综合之前的限制 \(p_1\ne 1,\cdots\)。我们发现这个 \(i\) 没什么意义,只是 \(n-1\) 个限制中的一种。发现此时就是 \(f_{n-1}\)。

综合起来就是 \(f_n=(n-1)(f_{n-1}+f_{n-2})\)。

链上最大独立集

有 \(v_1,v_2,\cdots,v_n\),限制选了 \(v_i\) 就不能选 \(v_{i+1}\),求能选的最大权值和。

令 \(f_i\) 代表最后一个选 \(v_i\) 的答案。

此时 \(v_{i-1}\) 不能选,发现转移 \(f_i=\max\limits_{1\le j\le i-2}{f_j}+v_i\)。

维护一个前缀max即可。

但是这样太麻烦了。

令 \(f_i\) 代表最后一个选的位置 \(\le i\) 的最大值。

\(f_i=\max(f_{i-1},f_{i-2}+v_i\times[v_i>0])\),发现这个东西很对。

LIS

令 \(f_i\) 代表以 \(i\) 结尾的最长LIS的长度。

回想一下 \(n^2\) 的转移:\(f_i=\max_{1\le j<i,a_j<a_i}{f_j}+1\)。

假设现在有 \(f_j=l\),我们实际上转移时并不关心这个 \(j\) 到底是多少,关心的是 \(a_j\) 是多少。

我们发现对于所有 dp 值为 \(l\) 的 \(i\),一定是 \(a_i\) 单调下降,不然就会出现一个地方的 dp 值可以变为 \(l+1\)。

令 \(f_i\) 代表最后一个 dp 值为 \(i\) 的地方上 \(a_i\) 是多少。

发现 \(f_i\) 是单调上升的。因为如果 \(f_l\le f_{l+1}\),由于刚才的结论,你 \(f_{l+1}\) 从哪转移过来?

二分处理这个东西即可。

P3558

link

首先发现把一个数减到小于 \(-1\) 或大于 \(1\) 没什么用。

标签:发现,le,腾飞,max,ne,dp,sim,坚决
From: https://www.cnblogs.com/BYR-KKK/p/18062519

相关文章

  • R语言分位数回归、最小二乘回归OLS北京市GDP影响因素可视化分析
    全文链接:http://tecdat.cn/?p=32372原文出处:拓端数据部落公众号对于影响北京市GDP因素分析常用的方法是最小二乘回归。【1】但最小二乘有自身的缺陷,该方法要求较高,例如许多观测数据很难满足全部假设条件。相比普通最小二乘法只能描述协变量对因变量条件均值变化的影响,分位数回......
  • UDP 协议端口检测原理和存在的问题说明
    一、UserDatagramProtocol(UDP)用户数据报协议(UDP):一种非常简单的传输协议,它提供类似于TCP的传输层寻址,但除此之外几乎没有其他功能。UDP只不过是一个“包装”协议,它为应用程序提供了一种访问互联网协议的方式。无法建立连接,传输不可靠,并且数据可能会丢失。二、UDP......
  • 数位dp板子(待补充)
    #include<iostream>#include<vector>#include<algorithm>#include<math.h>#include<string>#include<string.h>#include<iomanip>#include<map>#include<queue>usingnamespacestd;typedeflonglongll;......
  • Autofac的Swashbuckle生成报错 Microsoft.AspNetCore.Mvc.ApiExplorer.EndpointMetada
    错误内容:AnexceptionwasthrownwhileactivatingSwashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator->Microsoft.AspNetCore.Mvc.ApiExplorer.ApiDescriptionGroupCollectionProvider->λ:Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionProvider[]->......
  • LNMP+wordpress
    ......
  • wp/wordpress文章页面添加阅读量/点击量,后台并显示阅读量
    wordpress默认不带阅读量的,现在加上。在function.php加入代码1、前端加入阅读量和点击量//增加文章阅读次数functionrecord_visitors(){if(is_singular()){global$post;$post_ID=$post->ID;if($post_ID){$post_views=(in......
  • 卡农 -- HNOI2011 -- DP&组合
    卡农--\(HNOI2011\)$$luogu$$$$HZOI$$题意给定一个集合$A={1\lex\len|x}$,求出其\(m\)个不相同的且不为空集的子集,使得第\(i\)个元素的在所有选出的子集中出现的次数\(appear_i\mod2=0\)题解首先一个已知结论:对于一个\(A\)这样的集合,他......
  • PNPUTIL 驱动 添加 删除 导出(备份) DPInst64 驱动 安装
    MicrosoftPnP工具PNPUTIL[/add-driver<...>|/delete-driver<...>|     /export-driver<...>|/enum-drivers|     /enum-devices[<...>]|/enum-interfaces[<...>]|     /disable-device<...>|/enable-devi......
  • tcp和udp的区别
    在我们的OSI七层模型或者是四层模型中,我们的传输层始终保持不变,传输层负责定义两台主机进程之间的通信,提供数据传输服务,提供端到端的可靠传输,所以我们需要用到的两个主要的协议是:TCP协议:传输控制协议,提供面向连接、可靠的数据传输服务,主要提供完整性服务UDP协议:用户数据协议,提供......
  • 数位DP 学习笔记
    什么是数位DP数位dp是与数字相关的一类计数问题。这这类问题中,一般给定一些限制条件,求满足第\(K\)小的数是多少,或者求区间\([L,R]\)内有多少个满足条件的数。本文主要讲述如何解决求区间\([L,R]\)内有多少个满足条件的数这一类问题。为什么要用数位dp对于上述问题,如果......