![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dp
文章平均质量分 77
bubbleoooooo
这个作者很懒,什么都没留下…
展开
-
poj 2541 Binary Witch(状压dp)
题意:给定一个串s1~sn求sn+1的规则为:找一个最靠后且最长的(1没有匹配的就为0状压dp的解法是用dp[i][j]记录长为i值为j的最靠后的位置。线性更新一下就行。对于每个位置i,更新以此位置为结尾的长为1~13的后缀值的位置。若是i>=n,就通过dp[j][now],去找长为j值为now的前一个位置。j从1~13,长的状态可以更新短的状态。附原创 2015-03-21 16:15:19 · 434 阅读 · 0 评论 -
Codeforces567F. Mausoleum(DP)
//考虑从大到小向序列中放置数字(两个两个的放),小的数字肯定在大的数字两旁。//比如当前放置i 有三种情况,两左,一左一右,两右。//令dp[l][r]表示l~r的放置种数(从n开始放置,放了(r-l+1)/2 个数字(每次放两个))//那么转移方程实际上就是dp[l][r]=(A)dp[l-2][r]+(B)dp[l+1][r-1]+(C)dp[l][r-2];//这三种情况都会更新到原创 2015-08-08 13:18:28 · 1210 阅读 · 0 评论 -
CF571B-Minimization
//571B-Minimization//对于最终的序列A//可以分成k个组,即序列中模k同余的为一组//有n%k个长度为n/k+1的组,k-n%k个长度为n/k的组//对于同一个组而言,求相邻数的差的和的最小值。//只有每组内的元素都是有序的,每组内的相邻元素的差值才会最小//对于有序序列,值为max-min//无序的序列,可以划掉有序的部分(即bi<bi+1<bi+2,可以去掉b原创 2015-08-25 12:10:26 · 762 阅读 · 0 评论 -
poj3635 Full Tank?(spfa+dp)
//package project1;//可以先不用考虑加油//只考虑到这个点剩余油量为j的最小花费//那么我们可以按照最短路的方式来更新//然后再在这个点统一加油//一升一升的更新,因为j-1是最优的,用j-1更新的j也一定是最优的。//因为要么不加油,要么加的油量肯定大于等于1升//如果j-1不是最优,那么少加一升的适合肯定会更新的,import java.io.*;impo原创 2015-07-31 16:41:20 · 446 阅读 · 0 评论 -
CodeForces 543d Road Improvement(巧妙地树形dp)
//如何求树上任意一点为根的dp值//将以此点将树划分成两部分,一部分还是原来的子树//另一部分是此点的父亲往上为子树,这一点的转化很巧妙,一次从上到下的dp即可。//R[i]记录此点右面子树的乘积,从右到左,其实在最右的时候up[父亲]就已经计算了父亲往上的值了。现在只要记录兄弟即可。import java.io.*;import java.util.*;public class原创 2015-08-03 21:26:28 · 485 阅读 · 0 评论 -
codeforces543A Writing Code(完全背包)
//完全背包//首先定义dp[i][j][k]为前i个人写j行所含bug为k个的种数//然后对于dp[i][j][k]=dp[i-1][j][k]+dp[i][j-1][k-bug[i]];//第i个人要么不写,要么再写一行//然后用类似完全背包我们可以通过顺序遍历,省掉一维iimport java.io.*;import java.util.*;public class cf {原创 2015-08-03 22:04:18 · 603 阅读 · 0 评论