![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
sxlfyz_chenyx
山西省现役蒟蒻OIer
展开
-
luogu2679 noip2015 子串
我看了各位大佬的题解花了一个小时才弄懂…… 事实上这篇题解和网上的其他的差不多,或许使您更好理解。 我们先明确一下,子串是连续的。 然后拿到这道题,我们一看就是dp。 我们先创造一个数组, dp[i][j][t]\ dp[i][j][t]表示在a串前i个(下标从一开始)中搞出k个子串与b串前j个匹配的总方案数。 可以想到,它由第i个不选与第i个选上转移来,于是我们再定一个数组, f[i][原创 2017-09-29 08:38:26 · 296 阅读 · 1 评论 -
luogu1624 单词缩写
蒟蒻也能写出来的AC代码!这题好坑啊QAQ,我写的时候输入写了一个小时,too many or too few lines又调了好久好久,状态转移方程还是抄的书。设计状态转移方程的时候,如果是根据已知求当下会比较难设计,如果根据已知更新未知就相对好设计一些。我们拿 dp[i][j][k]\ dp[i][j][k] 表示做到缩写中的前 i\ i位,单词中的前 j−1\ j-1个单词外带第 j\ j个原创 2017-10-27 21:15:17 · 214 阅读 · 0 评论 -
luogu1412 经营与开发
蒟蒻也能写出来的AC代码!其实刚拿到这道题是我是不会做的……因为我惯性思维了,老是想着从1推到n,但是这样是有后效性的。不过,正难则反,既然从1到n有后效性了,那么我们想着从n推到1。可以看出来一个星球选择与否对后面的影响是成比例的,也就是说只是系数的差别。举个例子,第i个是资源型,我们可以搞出dp[i+1](代表从i+1开始选,1~i一概略过)的最大金钱数,钦定第i个开始选的系数为1,那么dp[i原创 2017-10-20 17:00:50 · 208 阅读 · 0 评论 -
luogu1472 奶牛家谱 Cow Pedigrees
十分巧妙的方法!也是看了题解才知道的。 我们自然地设出dp[i][j]表示用ii个点构成深度为jj的树的方案数,但是这样想转移似乎不太好啊…… 那就设dp[i][j]表示用ii个点构成深度小于等于jj的树的方案数,这样转移就十分方便了:给左子树分多少,给右子树分多少,计数原理搞一下就是了。 答案是dp[n][k]-dp[n][k-1]。#include <iostream> #include原创 2017-11-08 16:56:51 · 179 阅读 · 0 评论