随笔分类 -  动态规划—dp

摘要:设f[i][j]为第i分钟疲劳j,从三种情况转移,记得休息的时候判断从i开始休息到n能不能恢复到疲劳0 cpp include include using namespace std; const int N=10005,M=505; int n,m,a[N],f[N][M]; int main() 阅读全文
posted @ 2018-04-25 08:16 lokiii 阅读(137) 评论(0) 推荐(0)
摘要:设up[i][j]为第i位升序为j的最小修改数,down为降序 cpp include include using namespace std; int n,a[30005],up[30005][4],down[30005][4]; int main() { scanf("%d",&n); for( 阅读全文
posted @ 2018-04-25 07:21 lokiii 阅读(98) 评论(0) 推荐(0)
摘要:参考:https://www.cnblogs.com/lcf 2000/p/6809085.html 设f[i][j][k]为第i个学校派出的赛艇数量在区间j内,并且区间j内共有k个学校的方案数 把数量区间离散化,转移是: 当k==1 $$ f_{i,j,k}=\sum_{i'=1}^{i 1}\s 阅读全文
posted @ 2018-04-21 17:26 lokiii 阅读(103) 评论(0) 推荐(0)
摘要:写题五分钟读题两小时系列…… 看懂题的话不算难,然而我去看了大佬的blog才看懂题…… 题目大意是:一个原字符串,其中有一种通配符,合法串的定义是这个串(不含通配符))可以匹配原串并且这个串最多分成k段就能使每一段字典序单调不降。求在所有合法串中字典序第r大的。 设f[i][j][k]表示第i个字符 阅读全文
posted @ 2018-04-13 21:08 lokiii 阅读(141) 评论(0) 推荐(0)
摘要:居然要对不同的数据写不同的dp= = 首先记得开long long,\ include include using namespace std; const int N=2005,inf=1e9; int n,a,b; long long s[N],bt,ans; int read() { int 阅读全文
posted @ 2018-04-13 08:19 lokiii 阅读(135) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-03-23 21:56 lokiii 阅读(3) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-03-22 22:01 lokiii 阅读(4) 评论(0) 推荐(0)
摘要:首先f长得就很像能矩阵优化的,先构造转移矩阵(这里有一点神奇的地方,我看网上的blog和我构造的矩阵完全不一样还以为我的构造能力又丧失了,后来惊奇的发现我把那篇blog里的构造矩阵部分换成我的构造方式,交了一下完全没问题2333,并不知道为啥) 好久没写矩阵加速了,顺便说一下我的构造方法吧: 首先明 阅读全文
posted @ 2018-03-20 10:13 lokiii 阅读(225) 评论(0) 推荐(0)
摘要:看n和k的范围长得就很像矩阵乘法了 设f[i][j]表示到第i个位置的后缀最长匹配目标串的j位。转移的话显然是枚举0~9,然后选择f[i+1]中能被他转移的加起来,需要用到next数组。然后构造矩阵的时候,在转移路径上++即可(注意代码里的f数组只是辅助构造矩阵的,和上文无关 在写挂了n次kmp之后 阅读全文
posted @ 2018-03-19 20:00 lokiii 阅读(136) 评论(0) 推荐(0)
摘要:死于开小数组的WA?! 第一问n方dp瞎搞一下就成,f[i]记录以i结尾的最长不下降子序列。记答案为mx 第二问网络流,拆点限制流量,s向所有f[i]为1的点建(s,i,1),所有f[i]为mx(i+n,t,1),然后对于j include include include using namespa 阅读全文
posted @ 2018-02-07 10:05 lokiii 阅读(161) 评论(0) 推荐(0)
摘要:准确的说应该叫树上分组背包?~~并不知道我写的这个叫啥~~ 设计状态f[u][j]为在以点u为根的子树中有j个黑点,转移的时候另开一个数组,不能在原数组更新(因为会用到没更新时候的状态),方程式为g[j+k]=max(g[j+k],f[u][j]+f[e[i].to][k]+(k\ (m k)+(s 阅读全文
posted @ 2018-01-29 16:02 lokiii 阅读(152) 评论(0) 推荐(0)
摘要:被空间卡的好惨啊———— 参考:http://blog.csdn.net/coldef/article/details/70305596 容斥,\\( ans=ans_{没有限制} ans{没有质数} \\) 动规递推式,\\( f[i][j]=\sum_{k=0}^{p 1}f[i 1][k] c 阅读全文
posted @ 2018-01-07 22:05 lokiii 阅读(133) 评论(0) 推荐(0)
摘要:当然是容斥啦。 用dp预处理出\\( f[i] \\),表示在\\( i \\)价格时不考虑限制的方案数,转移方程是\\( f[i]+=f[i c[j]] \\),用状压枚举不满足的状态容斥一下即可。 阅读全文
posted @ 2018-01-06 20:47 lokiii 阅读(136) 评论(0) 推荐(0)
摘要:参考:http://blog.csdn.net/vmurder/article/details/44542575 和2337有点像 设点u的经过期望~~(还是概率啊我也分不清,以下都分不清)~~为\\( x[u] \\) ,度为 \\( in[u] \\),边\\( (u,v) \\) 的经过期望为 阅读全文
posted @ 2018-01-01 19:22 lokiii 阅读(128) 评论(0) 推荐(0)
摘要:首先,我们发现,因为是无向图,所以相连的点之间是有“依赖性”的,所以不能直接用dp求解。 因为是xor,所以按位处理,于是列线性方程组,设$ x[i] $为点i到n异或和为1的期望,因为从1到n和从n到1一样,所以选择倒着推,即, if(deg[e[i].va]==0) $$ x[u]=\sum_{ 阅读全文
posted @ 2017-12-30 23:06 lokiii 阅读(146) 评论(0) 推荐(0)