题目链接:传送门

题目大意:要参加聚会,对应聚会要穿对应衣服,衣服可以套着穿,也可以脱下来,但脱下来之后不能再穿,问参加完所有聚会至少需要几件衣服?

题目思路:区间DP

     一开始自己没有想出来状态转移方程,但是想到了左右区间如果边界相等的时候衣服数目应该-1,可以少穿一件。其实拓展一点就是更新

     方程的一部分了。对于区间 [l,r] ,如果r处的值==l处的值(要求穿的衣服相同),那么区间 [l,r]所穿的最少衣服等于区间 [l,r-1] 所穿最少衣服,

     因为 l 是起点,也就是说最里面穿的衣服是 l 对应的值,从 l 到 r 无论怎么更新,最里面的那件衣服始终不用脱掉,那么到 r 时候,至少有一种

     情况,也就是脱其他所有衣服,只剩 l 时,这时候也是满足条件的。对应的转移的方程 if(a[l]==a[r]) dp[l][r]=dp[l][r-1];

     然后对于其他区间,也就相同于普通区间DP转移。

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <stack>
#include <cctype>
#include <queue>
#include <string>
#include <vector>
#include <set>
#include <map>
#include <climits>
#define lson root<<1,l,mid
#define rson root<<1|1,mid+1,r
#define fi first
#define se second
#define ping(x,y) ((x-y)*(x-y))
#define mst(x,y) memset(x,y,sizeof(x))
#define mcp(x,y) memcpy(x,y,sizeof(y))
using namespace std;
#define gamma 0.5772156649015328606065120
#define MOD 1000000007
#define inf 0x3f3f3f3f
#define N 100005
#define maxn 100005
typedef pair<int,int> PII;
typedef long long LL; int n,m,a[],dp[][]; int main(){
int i,j,group,Case=;
scanf("%d",&group);
while(group--){
mst(dp,inf);
scanf("%d",&n);
for(i=;i<=n;++i){
scanf("%d",&a[i]);
dp[i][i]=;
}
for(int p=;p<=n;++p)
for(int i=;i<n;++i){
j=i+p-;
if(j>n)break;
if(a[i]==a[j])dp[i][j]=dp[i][j-]; ///***
for(int k=i;k<j;++k){
dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+][j]);
///这里如果a[k]==a[k+1]不需要处理
///因为在转移之前已经处理过了
}
}
printf("Case %d: %d\n",++Case,dp[][n]);
}
return ;
}

LightOJ - 1422 (Halloween Costumes)的更多相关文章

  1. LightOJ 1422:Halloween Costumes(区间DP入门)

    http://lightoj.com/volume_showproblem.php?problem=1422 题意:去参加派对,有n场派对,每场派对要穿第wi种衣服,可以选择外面套一件,也可以选择脱掉 ...

  2. 【LightOJ 1422】Halloween Costumes(区间DP)

    题 题意 告诉我们每天要穿第几号衣服,规定可以套好多衣服,所以每天可以套上一件新的该号衣服,也可以脱掉一直到该号衣服在最外面.求最少需要几件衣服. 分析 DP,dp[i][j]表示第i天到第j天不脱第 ...

  3. Pairs Forming LCM LightOJ - 1236 (算术基本定理)

    题意: 就是求1-n中有多少对i 和 j 的最小公倍数为n  (i <= j) 解析: 而这题,我们假设( a , b ) = n ,那么: n=pk11pk22⋯pkss, a=pd11pd2 ...

  4. G - Pairs Forming LCM LightOJ - 1236 (质因子分解)

    题解:这道题要从n的角度来考虑i和j. n可以表示为n=a1^p1*a2^p2*a3^p3.......n=lcm(i,j),那么质因子a1^p1,a1可以在i或者j中,并且p1=max(a1i,a1 ...

  5. Discovering Gold LightOJ - 1030 (概率dp)

    You are in a cave, a long cave! The cave can be represented by a 1 x N grid. Each cell of the cave c ...

  6. Finding LCM LightOJ - 1215 (水题)

    这题和这题一样......只不过多了个数... Finding LCM LightOJ - 1215 https://www.cnblogs.com/WTSRUVF/p/9316412.html #i ...

  7. 万圣节的糖果(Halloween Sweets)

    今天遇到codewars的一道题,这是链接,讲的是关于万圣节的一个题目,简单点说,就是9个包裹,一个天平,两次称的机会,怎么找出9个包裹中唯一一个较重的包裹. 像我这种年轻时候喜欢研究难题获得存在感的 ...

  8. lightoj 1179(线段树)

    传送门:Josephus Problem 题意:经典约瑟夫问题,有n个人,每次数到第k个人出列,求剩下的最后一人. 分析:用线段树模拟约瑟夫问题,记录区间的减少情况,然后根据每次数到的人在区间排第几位 ...

  9. Fantasy of a Summation LightOJ - 1213 (快速幂)

    题意: 首先 只看第一层循环的A[0],是不是用了nk-1次  A[1]也是用了nk-1次······ 所以 第一层的sum(A[i]的和) 一共用了nk-1 所以第一层为sum * nk-1 因为又 ...

随机推荐

  1. oracle经验小节2

    1,instr 函数 在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置. 语法如下: instr( string1, string2 [, start_position ...

  2. angular过滤器使用 自定义过滤器

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script sr ...

  3. C#指南,重温基础,展望远方!(6)C#类和对象

    类是最基本的 C# 类型. 类是一种数据结构,可在一个单元中就将状态(字段)和操作(方法和其他函数成员)结合起来. 类为动态创建的类实例(亦称为“对象”)提供了定义. 类支持继承和多形性,即派生类可以 ...

  4. python selenium --调用js

    转自:http://www.cnblogs.com/fnng/p/3230768.html 本节重点: 调用js方法 execute_script(script, *args) 在当前窗口/框架 同步 ...

  5. python selenium--常用函数3

    ActionChains类鼠标操作的常用方法: 引入ActionChains类:from selenium.webdriver.common.action_chains import ActionCh ...

  6. [css]后台管理系统布局

    知识点: 绝对定位+overflowhidden 整体思路 三大块 pg-header---需要固定 (height:48px) pg-content menu 右侧菜单-需要固定(width:200 ...

  7. 李洪强iOS经典面试题32-简单介绍 ARC 以及 ARC 实现的原理

    李洪强iOS经典面试题32-简单介绍 ARC 以及 ARC 实现的原理 问题 简单介绍 ARC 以及 ARC 实现的原理. 考查点 ARC 是苹果在 WWDC 2011 提出来的技术,因此很多新入行的 ...

  8. typedef可以成为你的朋友

    typedef static char int8;这个声明正确吗? A:err 所以上面那个声明是错误的. typedef为一种类型引入新的名字,而不是为变量分配空间,它并没有引入新的类型,而是为现有 ...

  9. 启动项目时tomcat问题汇总

    最近SVN上迁下来的新项目,在刚运行项目时tomcat就报错了.以前也经常遇到,没太引起注意,今天终于决定将这个问题好好总结一下. 首先 1.错误:An internal error occurred ...

  10. logback.xml

    <?xml version="1.0" encoding="UTF-8" ?> <configuration> <!-- 日志存放 ...