题意: 若一个区间都是相同字符可以一次消掉,读入长度,读入字符串,问要多少次消完
字丑(震声)
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
char a[505];
int dp[505][505];
int n;
while(cin>>n)
{
cin>>a;
for(int l=n-1;l>=0;l--)
{
dp[l][l]=1;
for(int r=l+1;r<n;r++)
{
dp[l][r]=dp[l][r-1]+1;
for(int k=r-1;k>=l;k--)
{
if(a[k]==a[r])
{
dp[l][r]=min(dp[l][r],dp[l][k]+dp[k+1][r]-1);
}
}
}
}
cout<<dp[0][n-1]<<endl;
/*for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
cout<<dp[i][j]<<" ";
}
cout<<endl;
}*/
}
}