![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DP
ZBoWing
这个作者很懒,什么都没留下…
展开
-
【题解】星空【状压DP】
这道题思维难度非常高,有很多处理的小技巧,并且代码也有很多细节 ;第一步这道题是一种序列的区间操作,我们都知道,区间操作比较麻烦,所以我们要想办法将区间操作转换成单点修改;这时,我们想到了差分,假如我们对一个序列进行操作,这时一个序列里的相对状态不会变只有两端改变,换句话说就是这个序列的差分并不会发生改变,只有两端的差分数组会发生变化。但这里的差分并不是差而是异或;对一个区间[l,r]进...原创 2019-10-22 16:59:30 · 160 阅读 · 0 评论 -
DP总结
总结Dp专题也复习结束了,下面简单的总结一下DP的知识。1. 线性DP注意dp的三个条件 子问题重叠性 最优子结构 无后效性;做题时要抽象出题目的关键点作为状态,并选择覆盖整个状态空间的最小维度集合;关键在于设计出状态,状态设计对了,方程就比较好想。而设计状态又要依靠经验,大量的刷题量来积累出来的。2.背包首先掌握01背包,完全背包,多重背包,分组背包的模型在传统的线性DP基础上...原创 2019-10-14 19:22:42 · 250 阅读 · 0 评论 -
题解【BZOJ1003】物流运输
这道题的考察很全面,考到了最短路和DP的结合,非常灵活,是一道很好的题;具体思路就是提前预处理出第i天到第j天都能走的最短路;然后进行DP就可以了,用dp【i】表示前i天运输所需的最少费用;代码如下:#include<bits/stdc++.h> using namespace std;struct data{int next,to,w;}e[801];int n...原创 2019-08-13 19:00:26 · 128 阅读 · 0 评论 -
【机房训练赛】Mine(DP)
然而这道题其实是DP。一直递推下去就好了:那么我们现在来定义状态:这里的DP与往常的不一样,我们要用i推到i+1;用dp[i]表示我们前i个字符中的填问号的方案数:只有这一维状态是显然不够的,因为前几个格子的状态会影响到这一格的,为了方便DP我们设置了如下的二维状态:dp[i][0]:表示第i个格子和第i-1个格子都不填雷:dp[i][1]:表示第i个格子不填雷,而第i-1个格子要填...原创 2019-08-30 19:27:07 · 137 阅读 · 0 评论 -
【题解】【Luogu1703最优贸易】最短路
我们在做这道题时正反图要同时建立,然后从起点出发,跑一遍DJ处理出权值最小的点F[x],再反着跑一遍处理出权值最大的点,D[x]。再枚举每个点,用D[x]-F[x]跟新答案即可。#include<bits/stdc++.h>#define maxn 510000using namespace std;priority_queue< pair < int , ...原创 2019-09-06 21:45:59 · 159 阅读 · 0 评论 -
【一本通提高篇】【题解】皇宫看守(树形DP总结)
思路:做过最大独立集,最小点覆盖,最小支配集,树上背包,普通树形DP,这就是树形DP的主要方式。最小支配集是选择最少的点去覆盖所有的点,每个选择的点可以覆盖相连的点和它本身。首先,最小支配集的状态设置就有难度,不只是用子节点跟新父亲节点,父亲的状态也会影响答案。那么我们这样定义状态:有三种状态:1.选父亲节点,不选本节点。2.选子节点,不选本节点。3.选本节点。那么:dp[x]...原创 2019-09-20 17:15:42 · 589 阅读 · 0 评论