87分求助
  • 板块CF607B Zuma
  • 楼主zhanpeixin
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/23 14:06
  • 上次更新2024/7/23 14:56:16
查看原帖
87分求助
1005412
zhanpeixin楼主2024/7/23 14:06
#include <bits/stdc++.h>
using namespace std;
#define int long long
#pragma G++ optimize(2)
const int N=1e3+10;
int dp[N][N];
char a[N];
signed main()
{
    memset(dp,0x7f,sizeof(dp));
    ios::sync_with_stdio(0);
    int n;
    cin>>n;
    for(int i=1; i<=n; i++)
    {
        cin>>a[i];
        dp[0][i]=dp[i][0]=1;
    }
    dp[0][0]=1;
    for(int len=1; len<=n; len++)
    {
        for(int i=1; i<=n-len+1; i++)
        {
            int j=i+len;
            if(len <= 2&&a[i]==a[j])
                dp[i][j]=1;
            else if(a[i]==a[j])
                dp[i][j]=dp[i+1][j-1];
            else
            {
                for(int k=i; k<j; k++)
                {
                    dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]);
                }
            }
        }
    }
    cout<<dp[1][n];
    return 0;
}
2024/7/23 14:06
加载中...