字符串DP汇总(不断更新)

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

原创文章 65 获赞 3 访问量 2107

猜你喜欢

转载自blog.csdn.net/littlegoldgold/article/details/104882696