• 【CF1132F】Clear the String (DP)


    /*
    区间dp题目, 考虑当前区间l,r 是可以枚举最后一次拿的分界点来考虑最右边节点是不是具有贡献 
    
    
    */
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #include<iostream>
    #include<queue>
    #define ll long long 
    #define M 550
    #define mmp make_pair
    using namespace std;
    int read()
    {
    	int nm = 0, f = 1;
    	char c = getchar();
    	for(; !isdigit(c); c = getchar()) if(c == '-') f = -1;
    	for(; isdigit(c); c = getchar()) nm = nm * 10 + c - '0';
    	return nm * f;
    }
    int f[M][M], n;
    char s[M];
    int main()
    {
    	n = read();
    	scanf("%s", s + 1);
    	memset(f, 0x3e, sizeof(f));
    	for(int i = 1; i <= n; i++) f[i][i - 1] = 0, f[i][i] = 1;
    	for(int len = 2; len <= n; len++)
    	{
    		for(int i = 1; i + len - 1 <= n; i++)
    		{
    			int j = i + len - 1;
    			for(int k = i; k < j; k++)
    			{
    				if(s[k] == s[j]) f[i][j] = min(f[i][j], f[i][k] + f[k + 1][j - 1]);
    				else f[i][j] = min(f[i][j], f[i][k] + f[k + 1][j - 1] + 1);
    			}
    		}
    	}
    	cout << f[1][n] << "
    ";
    	return 0;
    }
    
  • 相关阅读:
    04_特征工程
    03_特征清洗
    02_数据探索
    01_简介
    cache是什么文件?
    gulp详细入门教程
    HTML5实战与剖析之触摸事件(touchstart、touchmove和touchend)
    h4和h5的区别
    弹性盒布局
    js面向对象
  • 原文地址:https://www.cnblogs.com/luoyibujue/p/10676540.html
Copyright © 2020-2023  润新知