动态规划专题
Posted 陈伯爱学习
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态规划专题相关的知识,希望对你有一定的参考价值。
突然发现bilibili上好像有微信小程序开发的教程,有时间可以试着玩玩。
这周是动态规划专题,主要思想是将一个多步决策的问题给分解成几个子问题,分步击破,这个专题比较数学,涉及很多推公式,也涉及非常多数学内容,所以比较困难,我也就没做出几道题,明天交题解,现在就在这写了好了。
D.状态设计是dp[i][j]代表进行到第i轮,共拿j分的概率,这里涉及到概率和期望的概念,由于每个人都是平权的,所以期望为概率乘人数,然后统计最后得分期望小于P的人数即可,注意这里的状态转移需要分多种情况来考虑,是否可以由rk转移来,是否可以由m-1种情况转移来,均由dp[i-1][]转移来。
F.这道题我和标程做的不一样,状态表示是f[i][j]表示考虑i~j,需要添加的音符数,视ch[i]是否等于ch[j]由f[i+1][j-1]或f[i+1][j]或f[i][j-1]转移来。
G.背包问题,普通物品是多重背包,而神奇物品可视为分组背包,模板题。
J.由于兵种较少考虑状态压缩,f[s]表示从左往右已经安排了(s)种士兵,不动的士兵数,状态转移考虑最后一个安排的是哪种士兵。
K.和前一道题类似,这里有需要调换的次数等于逆序数,于是f[s]表示从左往右已经安排了(s)种士兵,逆序对的数目,状态转移同上。
N.树上背包问题,价值为修剪次数,花费是树的大小dp[i][j]表示以i为根节点的子树修建成大小为j的树需要修剪的次数。
P.区间DP,f[i][j],a[i][j]分别表示i,j区间的最小花费和这个区间的怪物是否能合并成1个,状态转移类似合并石子问题。
Q.决策单调性问题,利用后缀最大值(单调栈)来删去一些冗余决策点,然后利用转移方程里变量的单调性来快速维护状态转移。
R. 和G一样,单调队列优化或者二进制优化多重背包即可。
明天接着写,不过大概率一道做不出就是了。。。。
以上是关于动态规划专题的主要内容,如果未能解决你的问题,请参考以下文章