题目地址:
又是输出路径的DP。。。连着做了好多个了。
。
状态转移还是挺简单的。要先预处理出来全部的回文串,tag[i][j]为1表示字符串i--j是一个回文串。否则不是回文串。预处理时要用n^2的方法。即枚举回文串中间。能够分奇数和偶数两种分别求一次。
然后dp转移方程为,若tag[j][i]==1,dp[i]=min(dp[i],dp[j-1]+1);
对于最令人讨厌的路径输出。能够用pre来记录回文串前驱分裂点,然后依据这些分裂点来输出。
代码例如以下:
#include #include #include #include #include #include #include #include #include