[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;
}
全部评论

相关推荐

03-27 01:58
已编辑
西北工业大学 Java
在平静中度过当下:如果这个bg也简历挂的话可能他们现在不缺人了吧,我也是这两天投的,阿里和快手投的岗都是简历秒挂
点赞 评论 收藏
分享
03-04 07:14
门头沟学院 C++
黑皮白袜臭脚体育生:老板:都给工作机会了还想要工资,哪来这么多好事
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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