最小回文串划分

来源:互联网 发布:mac里的照片如何导出 编辑:程序博客网 时间:2024/06/05 10:25

转移方程 dp[i] = min(dp[j-1] + 1 , dp[i]) 1<=j <=i;

#include <iostream>#include <algorithm>#include <cmath>#include <cstdio>#include <cstring>#include <cstdio>using namespace std;int dp[100000];char s[100000];int T;bool judge(int from , int to){    while(from <= to)    {        if(s[from] != s[to])        {            return false;        }        from++;        to--;    }    return true;}int main (){    cin >> T;    while(T--)    {        cin >> s;        int len = strlen(s);        memset(dp,0,sizeof(dp));        for(int i = 0 ; i < len ; i++)        {            dp[i] = i+1;            for(int j = 0 ; j <= i ; j++)            {                if(judge(j,i))                dp[i] = min (dp[j-1]+1,dp[i]);            }        }        cout << dp[len-1] << endl;    }    return 0;}


原创粉丝点击