[CQOI2007]涂色PAINT

思路:




)



#include 
using namespace std;
typedef long long ll;
const int maxn = 2e3 + 10;
int n;
char s[maxn];
int dp[maxn][maxn];
int main(){
    scanf("%s", s + 1);
    n = strlen(s + 1);
    for(int i = 1; i <= n; i++){
        dp[i][i] = 1;
    }
    for(int len = 2; len <= n; len++){
        for(int l = 1; ; l++){
            int r = l + len - 1; if(r > n) break;
            if(s[l] == s[r]) dp[l][r] = min(dp[l + 1][r], dp[l][r - 1]);
            for(int mid = l; mid < r; mid++){
                if(!dp[l][r]) dp[l][r] = dp[l][mid] + dp[mid + 1][r];
                else dp[l][r] = min(dp[l][r], dp[l][mid] + dp[mid + 1][r]);
            }
        }
    }
    printf("%d\n", dp[1][n]);
    return 0;
}
全部评论

相关推荐

05-09 12:23
已编辑
华南理工大学 Java
野猪不是猪🐗:给他装的,双九+有实习的能看的上这种厂我直接吃⑨✌们拿它练练面试愣是给他整出幻觉了
点赞 评论 收藏
分享
每晚夜里独自颤抖:你cet6就cet6,cet4就cet4,你写个cet证书等是什么意思。专业技能快赶上项目行数,你做的这2个项目哪里能提现你有这么多技能呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务