1.UVA11584 Partitioning by Palindromes
题目链接:https://acm.njupt.edu.cn/problem/UVA11584/editor
利用dp保存前i个字符中最小分割次数
#include<iostream>
#include<cstdio>
#include<string>
#include<string.h>
using namespace std;
int n;
string s;
int dp[1100];
bool judge(int i,int j)
{
while(i<j)
{
if(s[i]!=s[j])
return false;
i++;j--;
}
return true;
}
int main()
{
ios::sync_with_stdio(false);
cin>>n;
for(int i=0;i<n;i++)
{
memset(dp,0,sizeof(dp));
cin>>s;
int len=s.size();
for(int i=0;i<len;i++)
{
dp[i]=i+1;
for(int j=0;j<=i;j++)
{
if(judge(j,i))
{
if(j!=0)
dp[i]=min(dp[i],dp[j-1]+1);
else
dp[i]=min(dp[i],1);
}
}
}
cout<<dp[len-1]<<endl;
}
return 0;
}
2.CF432D Prefixes and Suffixes
题目链接:https://acm.njupt.edu.cn/problem/CF432D
题解:https://blog.csdn.net/littlegoldgold/article/details/104851217