0分求助
查看原帖
0分求助
292069
洋本羊楼主2021/5/29 19:36
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
int dp[100][100];
char tu[100];
int n;
int main()
{
	scanf("%s",tu+1);
	n=strlen(tu+1);
	memset(dp,0x7f,sizeof(dp));
	for(int i=1;i<=n;i++)
	{
		dp[i][i]=1;
	}
	for(int k=1;k<=n;k++)
	{
		for(int i=1;i<=n;i++)
		{
			int j=k+i-1;
			if(tu[i]==tu[j])
			{
				dp[i][j]=min(dp[i+1][j],dp[i][j-1]);
			}
			else
			{
				for(int a=i;a<=j;a++)
				{
					dp[i][j]=min(dp[i][j],dp[i][a]+dp[a+1][j]);
				}
			}
		}	
	}
	cout<<dp[1][n];
	return 0;
}

样例输出的都是乱七八糟的数qwq

2021/5/29 19:36
加载中...