dp
MirrorGray
这个作者很懒,什么都没留下…
展开
-
BZOJ3037: 创世纪
题目大意:给定一个有向图,每个点出度为1,让你将这些点分为两个集合x和y,使得对于每一个y集合内的点都存在一个x集合内的点指向它,并且使得y集合尽可能大。 原图给的是一些内向基环树,显然要求的是一个最小支配集@poj3659。内向的基环树我们不好处理,考虑将这颗树反向,变成了外向基环树,这样我们可以随便找到环上的一个点以及指向它的点(首先每个联通快一定有环,但其实没有环的话就是正常的树了),不妨设原创 2016-04-08 09:13:57 · 1035 阅读 · 0 评论 -
BZOJ4521: [Cqoi2016]手机号码
省选2016系列…CQOI d1t3 显然的数位dp,状态也比较好想,dp[i][j][k][a][b][c]表示前i位,是否已经小于原数,当前后两个数是j,k,是否出现4,8,是否已经出现连续的3个。(有点复杂…>_<…) 省选数据是厉害…有三个数据的l都是10000000000,因为我默认他的位数是11位,l-1一下就挂飞了…大家引以为鉴…#include<cstdio>#include<原创 2016-04-14 21:17:31 · 1051 阅读 · 0 评论 -
BZOJ4069: [Apio2015]巴厘岛的雕塑
按位贪心,显然较大的位能是0就是0,然后就从高到低枚举每一位。dp判定这一位是否可以填0。 dp[i][j]表示长度为i,分了j段当前位是否可以是0,枚举k转移,如果(s[i]-s[k])这一段这一位是0 && (s[i]-s[j])这一段没有超过原来已经确定的答案的范围,就可以转移。复杂度n^3logn 注意到最后的数据n<=2000好像过不了?但是保证了A==1,那么就dp[i]表示当前位是原创 2016-04-27 21:56:11 · 928 阅读 · 0 评论