首页 > 其他分享 >关于dp部分的思考

关于dp部分的思考

时间:2023-06-23 09:00:21浏览次数:39  
标签:背包 int lim pos num 关于 思考 dp

dp部分小结

背包

背包主要是模型的构建。

01背包

选与不选,且只能选一个。

for(int i=1;i<=n;i++){
    for(int j=mt;j>=w[i];j--)
        dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
}

完全背包

选与不选,可任意选。

for(int i=1;i<=n;i++){
    for(int j=w[i];j<=mt;j++)
        dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
}

多重背包

选与不选,有数目限制。

  • 考虑二进制拆分,讲一个大小为n的物品拆成O(logn)个物品

分组背包

选与不选,每组只能选一个

区间

枚举区间断点

\( dp_{i,j}=max(dp_{i,k}+dp_{k+1,j}) \)

\( dp_{i,j}=max(dp_{i,k-1}+dp_{k+1,j}+c_k) \)

枚举区间最后一个点

数位

比较套路,只要确定好状态和限制就好了

ll dfs(int pos,int num,int lim,int d){
	if(!pos)return num==d;
	if(~dp[pos][num][lim][d])return dp[pos][num][lim][d];
	int ma=lim?bit[pos]:1;
	ll res=0;
	for(int i=0;i<=ma;i++){
		res+=dfs(pos-1,num+(i==1),lim&&i==ma,d);
	}
	return dp[pos][num][lim][d]=res;
}

状压

最好提前预处理合法状态

  • 枚举子集
for(int i=st;i;i=(i-1)&st)
  • 判断是否冲突
if((s1&s2)||(s1&(s2<<1))||((s1<<1)&s2))continue;

环形

树形

换根

标签:背包,int,lim,pos,num,关于,思考,dp
From: https://www.cnblogs.com/wolfoxwave/p/17498726.html

相关文章

  • 关于我的Shader学习笔记
    由于发布的博客是笔记性质,肯定会在一些方面描述的不够详细。如果对于我的笔记有什么疑问,欢迎私信我提问!本笔记参考书籍:《UnityShader入门精要》冯乐乐著《3D游戏与计算机图形学中的数学方法》《Introductionto3DGameProgrammingwithDir......
  • CF708C Centroids 换根dp
    CF708CCentroids一道换根DP。我们可以先找出树的一个重心,那么对于其他所有不是重心的点,它不能成为重心时因为它父亲的那一支节点数大于一半,而可以改造成功,则意味着可以在他父亲那一支里,可以找到子树u,使$siz[u]\len/2$&&$siz[fa]-siz[u]\len/2$。简而言之,就是对于每个......
  • 关于高考一分一档的研究
    这篇博客的旨在研究偏态分布以下是偏态分布的定义:偏态分布是与“正态分布”相对,分布曲线左右不对称的数据次数分布,是连续随机变量概率分布的一种。可以通过峰度和偏度的计算,衡量偏态的程度。可分为正偏态和负偏态,前者曲线右侧偏长,左侧偏短;后者曲线左侧偏长,右侧偏短。——《简......
  • 关于 cross-env 和 process.env
    cross-envkentcdodds/cross-env:......
  • 关于python学习笔记
    转载请注明来源:http://www.eword.name/Author:ewordEmail:[email protected]关于python学习笔记详细记录Eword的python入门过程IDE环境推荐#【推荐】VSCode+Python+pip+Virtualenv或#【可选】PyCharm+Python+pip+Virtualenv......
  • 关于python学习笔记
    转载请注明来源:http://www.eword.name/Author:ewordEmail:[email protected]关于python学习笔记详细记录Eword的python入门过程IDE环境推荐#【推荐】VSCode+Python+pip+Virtualenv或#【可选】PyCharm+Python+pip+Virtualenv......
  • RAW域算法之坏点消除DPC
    坏点检测/消除(DefectPixelDetection/Correction)与FPN类似,坏点的产生也与Sensor的工艺有关。与FPN不同的是,坏点有固定点和疑似坏点两种。而后者的出现相对不固定,会随着曝光时间以及温度的变化而变。因此进行坏点消除之前需要首先进行坏点检测(DefectPixelDetection)......
  • UDP recvfrom error错误10022
    fromlen参数没有初始化from参数没有设置正确,也就是结构问题终于发现原来是bind函数的问题。由于在文件开头使用了usingnamespacestd导致默认的bind变成了functional中的那个,而不是socket的bind,导致绑定一直没有成功。当然,也可能是套接字端口被占用......
  • DPU-DOCA编程
    2.1.DOCAAppShield/  DOCA应用程序屏蔽DOCAAppShieldlibraryAPIoffersintrusiondetectioncapabilitiesusingthebuilt-inhardwareservicesoftheDPUtocollectdatafromthehost'smemoryspace.AppShieldmakesitpossibletodetectattacksoncri......
  • 西门子Tecnomatix PDPS软件安装问题
    安装教程和相应的百度网盘文件可自行搜索下载:安装过程遇到的问题1:Association时,提示:ThefollowingerroroccurredwhileappliyingSystemRoot:拒绝访问。解决方法:gpedit.msc打开,找到:计算机配置-->Windows设置-->安全设置-->本地策略-->安全选项,找到并禁用如下两项:(1)用户账......