首页 > 其他分享 >dp套路

dp套路

时间:2022-09-24 08:11:19浏览次数:54  
标签:状态 题目 套路 子集 Sl dp

开始补 dp 了。

状压 dp

常见套路:数据范围小,能将状态用 \(0/1\) 表示,且状态的表示一般有所限制(例如不能将两个 \(1\) 放在一起)。

若设当前行状态为 \(S\),则 \((S<<1)\&S\) 和 \((S>>1)\&S\) 能把出现相邻 \(1\) 的状态舍去,间隔同理。

若题目支持 \(3^n\) 做法,可以考虑枚举所有子集 for(int G = S; G; G = (G - 1) & S) 用子集来转移。

一般状压题目可以先预处理出第一行的状态与答案,然后再转移。

遇到选价值的题目,顺推能处理出所选的数的价值总和, a[S] = a[S ^ (S & (-S))] + a[S & (-S)]

若需要枚举子集,且子集推到当前集合只需添加一个状态,可以用 \(\text{lowbit}\) 每次取出最高位后异或操作转移 for(int G = S, Sl; G; G ^= Sl) Sl = G & (-G), dp[S]+=dp[G ^ Sl];

标签:状态,题目,套路,子集,Sl,dp
From: https://www.cnblogs.com/tidongCrazy/p/16724884.html

相关文章

  • wxWidgets UI 库 简单示例和 高清屏 DPI 适配
    wxWidgets是一种跨平台开发的UI库,winmacOSubuntu都有很好的本地实现。版权友好,个人商业用途都可以,静态编译也比较容易,开发的比较出名的软件有:Filezilla、Aegisub......
  • 数位DP
    模板题:1082.数字游戏题目描述求整数区间[L,R][L,R]内,不降数的个数不降数:数位从高到低呈非下降关系(【例】:123,446)代码#include<bits/stdc++.h>usingnamespace......
  • 做题记录整理dp11 P4158 [SCOI2009]粉刷匠(2022/9/23)
    P4158[SCOI2009]粉刷匠事实上前半个小时我甚至没想用dp做。。。感觉这道题难度标高了(跟那个想让我测出题人的码的题相比)首先可以发现每一行之间都是独立的,所以先考虑把......
  • 做题记录整理dp9 P1758 [NOI2009] 管道取珠(2022/9/23)
    P1758[NOI2009]管道取珠这道题的难点就在于赋予ai的平方和一个具体的含义,我们可以想到(其实要不是上课听了根本想不到)ai的平方和其实就是两个管道取珠游戏一起玩,然后取......
  • 做题记录整理dp810 P2254 [NOI2005] 瑰丽华尔兹(2022/9/23)
    P2254[NOI2005]瑰丽华尔兹题解这题的难点在与dp的递推方程的书写如果写对了递推方程,想到单调队列优化是很自然的(然而我想到了不会打)还有递推方程的具体代码实现也挺......
  • 做题记录整理dp8 P5665 [CSP-S2019] 划分(2022/9/23)
    P5665[CSP-S2019]划分这题其实并不是题单的第八题,但我现在一做完题目马上就想来(测出题人的码)整理题目因为这题是真的恶心首先朴素的n三次方dp,枚举上一个端点,以及上上......
  • 【线性dp】 [SCOI2009]粉刷匠
    点个关注点个赞吧一道比较简单的线性dp题目前置知识:会手推一些简单的状态转移方程、较为熟练地掌握背包问题模型[SCOI2009]粉刷匠题目描述windy有\(N\)条木......
  • 【源码笔记】ThreadPoolExecutor#addWorker
    /***Checksifanewworkercanbeaddedwithrespecttocurrent*poolstateandthegivenbound(eithercoreormaximum).Ifso,*theworkercountisa......
  • 关于dp
    线型模型(LIS) 1//线性dp模板顺推2f[1]=1;//恒成立3for(inti=2;i<=n;i++)//从到第2个数开始4{5f[i]=0;//每次重新开始赋初值......
  • 云主机搭建WordPress个人博客
    安装宝塔控制面板宝塔面板是一个简单、好用的面板,它的功能就是将LNMP和服务器的各种管理集成到一个可视化的WEB环境来管理,通过面板,我们普通人不需要掌握具体的技术,只需要......