caioj1495: [视频]基于连通性状态压缩的 动态规划问题:Formula 2

本来想写一天插头的,但是这题太难受(绝望)500+的代码量。。我选择下午放松一下。

先ORZ一下苏大佬(yz的cdq啊%%%%%)居然把cdq论文里面的题抠出来出数据放在c站(呵呵真是个悲伤的故事不过我也可以说我是手调过插头的男人了)

一开始学的时候以为直接把所有回路求出来然后除个n-1就行了,但其实起点和终点不用相连的。

然后我这个不会单插头的人就只能自己yy了。

我就把dp开多了一维,表示当前位置,有多少个位置必定断了(其实就是单插头个数,但是我那时这个名词听都没听过),我用3表示这个标记,然后只有3种可能,特判若当前没有断够2次,就只向外联一条边而增加一次断数,见到其他括号就合并,去把另一边的括号变成3。当然不断的也有转移,本来以为转移也要特判但其实不用(自己想)。

然后最后答案就是断了2次并且在最后一个位置封闭了的方案数+断了一次的方案数(因为只断了一次,说明第二个断的位置就在最后)

小细节,做其他题的时候发现状态不开LL有时会挂的。

代码就不给了,不然你们都不自己写了。而且有视频。

posted @ 2018-03-27 14:55  AKCqhzdy  阅读(85)  评论(0编辑  收藏  举报