#include<bits/stdc++.h>
using namespace std;
int a[5007];
int dp[5007][5007];
int main(){
    int n;
scanf("%d",&n);
    for(int i=1;i<=n;i++)
        scanf("%d",&a[i]);
    n=unique(a+1,a+1+n)-a-1;
    for(int i=n;i>=1;i--){
        for(int j=i+1;j<=n;j++){

    dp[i][j]=min(dp[i+1][j]+1,dp[i][j-1]+1);//右面变为左面的颜色或者左面变为右面的颜色
             if(a[i]==a[j])
                dp[i][j]=min(dp[i][j],dp[i+1][j-1]+1);//里面变为外面的颜色
        }
    }
    printf("%d",dp[1][n]);
    return 0;

Codeforces Round #538 (Div. 2)D(区间DP,思维)的更多相关文章

  1. Codeforces Round #538 (Div. 2) (A-E题解)

    Codeforces Round #538 (Div. 2) 题目链接:https://codeforces.com/contest/1114 A. Got Any Grapes? 题意: 有三个人, ...

  2. Codeforces Round #538 (Div. 2) (CF1114)

    Codeforces Round #538 (Div. 2) (CF1114)   今天昨天晚上的cf打的非常惨(仅代表淮中最低水平   先是一路缓慢地才A掉B,C,然后就开始杠D.于是写出了一个O( ...

  3. Codeforces Round #538 (Div. 2) D. Flood Fill 【区间dp || LPS (最长回文序列)】

    任意门:http://codeforces.com/contest/1114/problem/D D. Flood Fill time limit per test 2 seconds memory ...

  4. Codeforces Round #538 (Div. 2)

    目录 Codeforces 1114 A.Got Any Grapes? B.Yet Another Array Partitioning Task C.Trailing Loves (or L'oe ...

  5. Codeforces Round #369 (Div. 2) C 基本dp+暴力

    C. Coloring Trees time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...

  6. Codeforces Round #538 (Div. 2) F 欧拉函数 + 区间修改线段树

    https://codeforces.com/contest/1114/problem/F 欧拉函数 + 区间更新线段树 题意 对一个序列(n<=4e5,a[i]<=300)两种操作: 1 ...

  7. Codeforces Round #539 (Div. 2) 异或 + dp

    https://codeforces.com/contest/1113/problem/C 题意 一个n个数字的数组a[],求有多少对l,r满足\(sum[l,mid]=sum[mid+1,r]\), ...

  8. Codeforces Round #131 (Div. 1) B. Numbers dp

    题目链接: http://codeforces.com/problemset/problem/213/B B. Numbers time limit per test 2 secondsmemory ...

  9. Codeforces Round #131 (Div. 2) B. Hometask dp

    题目链接: http://codeforces.com/problemset/problem/214/B Hometask time limit per test:2 secondsmemory li ...

随机推荐

  1. 增加 [确定] and [失败]系统提示

    增加 [确定] and  [失败]系统提示 #!/bin/bash. /etc/init.d/functionsaction "true" /bin/falseaction &qu ...

  2. Azure基于角色的用户接入控制(RBAC)

    RBAC是Role Based Access Control是基于角色的接入控制的简称.在Azure推出ARM以后,对Azure各种资源的管理粒度已经非常细致,使得RBAC成为可能. 通过RBAC可以 ...

  3. play 学习 四: 关于play跨域

    默认, 在满足下面三个条件的情况下,Play框架会做一CSRF(跨站点请求伪造) 的检查: 请求方法不是GET, HEAD 或 OPTIONS. 情求包含Cookie或者Authorization头. ...

  4. Git命令之创建版本

    安装 安装好Git后,将会在桌面生成 这样一个图标 运行后将会是类似控制台程序的黑色窗口,其中mingw64(参考百度百科).这样的话就可以在输入命令 例如 :git 见到下图有详细的用法表示成功否则 ...

  5. 关于RandomizedSearchCV 和GridSearchCV(区别:参数个数的选择方式)

    # -*- coding: utf-8 -*- """ Created on Tue Aug 09 22:38:37 2016 @author: Administrato ...

  6. elastic(6) mget

    转自:https://www.cnblogs.com/zhaijunming5/p/6424800.html GET /library/books/1 { "_index": &q ...

  7. java中常用的时间操作

    最近项目设计时间的转换和计算,长时间没用时间操作了,感觉手有点生,所以在这里记录一下: Date 常用的方法: getTime() .setTime(): SimpleDateFormate 常用的方 ...

  8. C语言学习笔记--指针阅读技巧

    1. 指针阅读技巧:右左法则 (1)从最里层的圆括号中未定义的标示符看起 (2)首先往右看,再往左看 (3)遇到圆括号或方括号时可以确定部分类型,并调转方向 (4)重复 2.3 步骤,直到阅读结束 注 ...

  9. Python之路:面向对象及相关

    其他相关 一.isinstance(obj, cls) 检查是否obj是否是类 cls 的对象 class Foo(object):     pass   obj = Foo()   isinstan ...

  10. 关于contentprovider的几个问题

    说说ContentProvider与Android数据存储的关系? contentprovider是程序之间共享数据的唯一方式,android中没有公共数据区域的说法,每个进程启动都是不同的用户,与P ...