zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 61 (Rated for Div. 2)F(区间DP,思维,枚举)

    #include<bits/stdc++.h>
    typedef long long ll;
    const int inf=0x3f3f3f3f;
    using namespace std;
    char b[507];
    int dp[507][507];
    int main(){
        memset(dp,0x3f,sizeof(dp));
        int n;
        scanf("%d",&n);
        scanf("%s",b+1);
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                if(i==j)
                    dp[i][j]=1;
                else
                    dp[i][j]=inf;
        for(int len=1;len<=n;len++)//中间段长度
            for(int l=1,r;(r=l+len)<=n;l++)//枚举起点,枚举终点
                if(b[l]==b[r])
                    if(len==1)
                        dp[l][r]=1;//初始为1
                    else
                        dp[l][r]=min(min(dp[l+1][r],dp[l][r-1]),dp[l+1][r-1]+1);//更新最小值
                else
                    for(int k=l;k<r;k++)
                        dp[l][r]=min(dp[l][r],dp[l][k]+dp[k+1][r]);//区间更新
        printf("%d",dp[1][n]);
    }

    //类似cf#538D

    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    LeetCode数据库178
    LeetCode数据库181
    LeetCode数据库177
    LeetCode数据库176
    HNOI2003 消防局的设立
    HNOI2001 产品加工
    Luogu P1020 关路灯
    NOIP2004 虫食算
    SP2713 GSS4-Can you answer these queries IV
    APIO2008 免费道路
  • 原文地址:https://www.cnblogs.com/ldudxy/p/10486816.html
Copyright © 2011-2022 走看看