WA求助50pts
查看原帖
WA求助50pts
351679
shaun2000楼主2024/7/8 13:14
 #include <bits/stdc++.h>

using namespace std;
char a[405];
int f[405][405];
int main()
{
    scanf("%s",a+1);
    int n;
    for(int i=1;i<=45;i++)
    {
        if(a[i]==0)
        {
            n=i-1;
            break;
        }
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            f[i][j]=10000000;
        }
    }
    for(int i=1;i<=n;i++)
    {
        f[i][i]=1;
    }

    for(int l=2;l<=n;l++)
    {
        for(int i=1,j=i+l-1;j<=n;)
        {

            if(a[i]==a[j])
            {
                f[i][j]=min(f[i][j-1],f[i+1][j]);
            }
            else
            {
                for(int k=i;k<j;k++)
                {
                    f[i][j]=min(f[i][j],f[i][k]+f[k+1][j]);
                }
            }
            i++;j++;
        }
    }
    printf("%d",f[1][n]);

    return 0;
}
2024/7/8 13:14
加载中...