
DP
OriginalRecipe
这个作者很懒,什么都没留下…
展开
-
True Liars POJ - 1417 并查集拓展域+DP
题目链接:POJ-1417主要思路:首先你得明白,好人眼中的好人是好人,坏人眼中的好人是坏人,坏人眼中的坏人是好人一个人眼中的好人是和他一样的人。故用拓展域确定其关系,再用DP枚举每一个集合内(一个集合指两个队里的团体)哪个团体是好人。若不可以唯一确定则输出-1.AC代码:#include<cstdio>#include<cstring>#includ...原创 2018-08-18 17:56:20 · 312 阅读 · 0 评论 -
「HNOI2010」公交线路 矩阵快速幂优化DP
「HNOI2010」公交线路 写在前面:看完题面,这很动态规划,再看一下n的数据范围,可以联想到矩阵快速幂。(可是考场上也就到此为止了)Part1:一开始想到的是一个数量为KPK^{P}KP的状态,就是存当前决策点前P个站分别是哪辆公交车的站点(可以状压)。然后枚举第i个站是那辆公交车的站点进行转移。又对于每辆公交车由于只有离当前决策点最近的站才对后面的决策有...原创 2019-08-08 21:19:07 · 210 阅读 · 0 评论 -
[BZOJ2013][Ceoi2010]A huge tower
[BZOJ2013][Ceoi2010]A huge tower题解前的吐槽:好神仙啊,考试时想了超过1h都没有想出,赛后看题解才恍然大悟。题中砖A在砖B上面是指砖A在砖B正上面,如果中间各一个砖块则两者没有关联。下面按照解这种方案数题的套路走。如果我们不排序直接一个一个放。前面已经放了i个砖块,现在要放第i+1个砖头(记这个砖头长为L),那么一共有i+1个位置可以放。但如果一个位置合法...原创 2019-07-23 10:39:29 · 244 阅读 · 0 评论 -
HDU-6578 Blank
HDU-6578 Blank联想(口胡)(可跳过)限制为几种不一样的数—>存每个数最后出现的位置又是一道神仙DP题。但如果思路正确还是挺简单的。由于限制是限制一个区间有几个不同的数,所以我们不必知道每个位置具体放的是什么数。于是我们定义dp[i][j][k][q]dp[i][j][k][q]dp[i][j][k][q]为前i个位置中四种数的最后出现位置为i,j,k,q的方案数这里...原创 2019-07-23 10:08:00 · 938 阅读 · 0 评论 -
「NOI2009」二叉查找树 区间DP 记忆化搜索
「NOI2009」二叉查找树区间DP 记忆化搜索Part 0有几个性质:1.由于本题是按照数据值排序的二维查找树,那么这颗树的中序遍历是确定的(按照数据值排序后的序列)。故对于一个节点区间,如果我们确定了他的根是什么,就可以确定他的左右子树分别有哪些点。不难发现,这两个子树之间的贡献是没有关联的。故可以以此一步步缩小问题规模。举个例子,先得到中序遍历,对于区间[L,R],如果以i为根,...原创 2019-07-31 10:22:28 · 177 阅读 · 0 评论 -
ZJOI[2010]基站选址 线段树优化DP
ZJOI[2010]基站选址Part -1这是一个很神仙的dp题,也可以算是线段树优化dp的一道入门题(神仙说的)。Part 0首先得打出暴力的写法。要注意dp的无后效性。(还有注意要仔细看题)定义dp[i][k]dp[i][k]dp[i][k]为对于前iii个村落,建kkk个通讯基站,且最后一个建在第iii个村庄的最小花费。那么就有dp[i][k]=min(dp[j][k−1]+co...原创 2019-07-13 14:41:16 · 196 阅读 · 0 评论 -
「ZJOI2012」波浪 DP
「ZJOI2012」波浪题解部分由于本题中要求绝对值,但我们可以选定一个顺序加点以去掉绝对值(这里就用从小到大加点)。就可以算出每个点对答案的贡献。(这里的答案不是指方案数,而是指相邻数差的绝对值的和)那么对于一个状态,我们只用知道它有几个联通块,即可,那么它插的位置就是联通块位置+1,然后再分类讨论它是否与两边的联通块相连即可,还有放在边界上的情况。然后我们每加入一个点,它插入的位置有两...原创 2019-04-22 10:14:56 · 380 阅读 · 0 评论 -
IOI2009 旅行商DP
Part 0本题的展销会参加顺序是由展销会开始的时间决定的。故本题决策的时间点是单调递增的,就是说每个时间点都只会被它前面决策的时间点所影响,并且影响它后面的时间点的决策,故可以用动态规划。Part 1我们先解决时间点都不同的情况。首先按展销会开始时间排序,记dp[i]dp[i]dp[i]为已经决策完前i−1i-1i−1个展销会去不去且去第iii个展销会的最小花费。因为旅行商从家出发,最后要...原创 2018-10-26 22:10:56 · 204 阅读 · 0 评论 -
Jeff and Furik CodeForces - 351B 计数DP
题目链接:Jeff and Furik刚开始看到这道题的时候挺像把数的位置都记下来的,但是看了看n的范围马上放弃了。其实只用记录逆序对的个数就可以了。因为每次交换的都是两个相邻的数,只会使逆序对个数加一或者使个数减一。故只用记dp[i][op]为还剩i个逆序对,此时为(若op为1则为Jeff,反之则为Furick)的人去,Jeff取肯定将逆序对个数减一,即dp[i][1]=dp[i-1][0]...原创 2018-09-21 22:23:15 · 164 阅读 · 0 评论 -
Domination ZOJ - 3822 期望DP(记忆化搜索)
题目链接:Domination ZOJ - 3822 这道题的难点就在于状态的设计,如果你只想了一会就来看这篇题解,我建议你多方面想想状态的设计之后,若还是没有思路再来看题解。主要思路:第一眼看过去是不是很多人都想如何存棋盘的状态,但是我们并不需要每一行,每一列是怎么放得,只需要知道有几行放了,有几列放了就可以了。同样也有可能放一颗棋子之后没有新增的行和新增的列,这时候,就需要推公式了...原创 2018-09-21 19:54:12 · 230 阅读 · 0 评论 -
NOI2015day1寿司晚宴 状压DP
NOI2015day1寿司晚宴测试点1~3这个写法不唯一。可以2^30枚举之后打表。也可以dp。定义状态dp[i][chs1][chs2]dp[i][chs1][chs2]dp[i][chs1][chs2]表示已经决策了2~i这些数,第一个人选的数的质因数中有chs1(二进制数表示状态),第二个人选的数的质因数有chs2的方案数。这里i可以用滚动数组,也可以用01背包的套路(倒序枚举)优化...原创 2019-09-05 16:17:57 · 185 阅读 · 0 评论