插头DP学习小记

来源:互联网 发布:中国金融发展知乎 编辑:程序博客网 时间:2024/05/16 02:16

CDQ的插头入门论文


代码链接


HDU 1693 Eat the Trees

多条回路,状态表示中只要用01区分有没有插头即可。

ZOJ 3466 The Hive II

六边形的多条回路,按列推看起来好写,把轮廓线画出来就很清晰了。

URAL 1519 Formula 1

一条回路的入门题,用括号表示法来讨论插头的合并确实要简单一些,括号表示相较最小表示更适合状态简单的题。括号表示法效率为最小表示的3倍,我为何敢把最小表示写得这么挫。

POJ 1739 Tony's Tour

问从左下角走到右下角的方法数,2种做法,1.扩大地图将左下和右下连起来。2.每个格子有两个插头或者0个插头,那么强制左下格子和右下格子一定有下插头就可以了,答案为dp[1000...002]。

HDU 1964 Pipes

处理一下图,规定往下和往右连插头时获得该位置的权值,然后就把计数换成取最大值dp就可以了。

ZOJ 3256 Tour in the Castle

10^9的列数,但是行数为7,每一列的状态数其实很小(貌似300左右)。首先处理出列和列之间的转移,然后矩阵幂,答案的话就是和Tony's Tour一样的处理方式了。

HDU 3377 Plan

左上角和右下角的通路,不妨改造图变成经过右下角的回路来处理。有些格子可以不走,那么就是在没有左插头和上插头时多一个无插头转移。同样转移取最大值就可以了。

FZU 1977 Pandora adventure

在上一题的基础上强制某些格子一定要走,那么就是在无插头转移时多判断一下就可以了。统计方法数。

目前只切了一些入门回路题,留下无数的坑待填。

0 0