12 2017 档案
bzoj1093[ZJOI2007]最大半连通子图(dp+tarjan)
摘要:因为我数组开错了调了很久。。 按照题意来说很明显的是如果是一个环的话它肯定符合条件,而且为了满足最大的条件,环里的点一定是一起取的,所以先用tarjan缩点。 缩点后实质上就是取一条最长链。 然后很明显就可以按照拓扑序来dp了,side[i]表示到当前这个点为止,链的最长的长度是多少?dp[i]表示
阅读全文
UVALive - 3363【String Compression】
摘要:一道很裸的区间Dp,不过我判断这个字符串的最小循环节时用了kmp,结果后来去看了一下别人的题解,发现,枚举就可以了。。。 具体的不写了。
阅读全文
bzoj2152【树形dp】聪聪和可可
摘要:这道题还是比较显然的,我们用dp[x][y]来表示在x这个点往下取一条路段和sum%3==y的路有几种方案,很明显它可以由dp[son[x]][(y+3-w)%3]来更新(w为son[x]到x这段路的长度),如果用ans[x]来表示以x为根的子树中有多少种方案,我们分两种情况,第一种这段路不经过x点那么很明显,它肯定已被计算在ans[son[x]]中,所以我们要把ans[x]加上ans[son[x...
阅读全文
bzoj1087[状压dp]
摘要:果然我的水平只能写写以前的原题啊。。 地址: 用dp[i][j][k]表示第i行放的状态为j,前i行总共放了k个的合法方案数 那么dp[i][j][k]+=dp[i-1][p][k-val[p]](p是枚举的上一行的放的状态,val[p]表示这个状态下是放了几个)(当然先得保证j和k的方法分别合法且
阅读全文
浙公网安备 33010602011771号