题目链接:http://vjudge.net/contest/141291#problem/D

题意:有n个地方,每个地方要穿一种衣服,衣服可以嵌套穿,一旦脱下的衣服不能再穿,除非穿同样的一件新的,问在满足题目要求的穿衣顺序下最少需要准备几件衣服。

思路:区间dp

//这个是看的别人的代码理解的,但是按照自己理解的写的代码样例正确,但是结果怎么都是WA的,不知道为什么,等我问问学长搞懂了再补题。//隔天改对了。

代码1:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
#define ll long long
const int maxn=1e2+;
const int INF=0x3f3f3f3f; int dp[][];
int a[]; int main(){
int T;
scanf("%d",&T);
for(int t=; t<=T; t++){
int n;
scanf("%d",&n);
memset(dp,,sizeof(dp));
for(int i=; i<=n; i++){
scanf("%d",&a[i]);
dp[i][i]=;
}
for(int d=; d<n; d++) ///区间长度
for(int i=; i+d<=n; i++){
int j=i+d;
dp[i][j]=dp[i+][j]+;
for(int k=i+; k<=j; k++)
if(a[i]==a[k]) dp[i][j]=min(dp[i][j],dp[i+][k]+dp[k+][j]);
}
printf("Case %d: %d\n",t,dp[][n]);
}
return ;
}

代码2:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
#define ll long long
const int maxn=1e2+;
const int INF=0x3f3f3f3f; int dp[][];
int a[]; int main(){
int T;
scanf("%d",&T);
for(int t=; t<=T; t++){
memset(dp,INF,sizeof(dp));
int n;
scanf("%d",&n);
for(int i=; i<=n; i++) {scanf("%d",&a[i]);dp[i][i]=;}
for(int d=; d<n; d++) ///区间长度
for(int i=; i+d<=n; i++){
int j=i+d;
if(a[i]==a[j]) dp[i][j]=dp[i][j-];
for(int k=i; k<j; k++)
if(a[i]==a[k]) dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+][j]);
}
printf("Case %d: %d\n",t,dp[][n]);
}
return ;
}

代码3:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
#define ll long long
const int maxn=1e2+;
const int INF=0x3f3f3f3f; int dp[][];
int a[]; int main(){
int T;
scanf("%d",&T);
for(int t=; t<=T; t++){
memset(dp,INF,sizeof(dp));
int n;
scanf("%d",&n);
for(int i=; i<=n; i++) {scanf("%d",&a[i]);dp[i][i]=;}
for(int j=; j<=n; j++) ///区间 i是头,j是尾
for(int i=j-; i>=; i--){
if(a[i]==a[j])dp[i][j]=dp[i][j-];
for(int k=i; k<j; k++)
if(a[i]==a[k]) dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+][j]);
}
printf("Case %d: %d\n",t,dp[][n]);
}
return ;
}

light oj 1422 Halloween Costumes (区间dp)的更多相关文章

  1. Light OJ 1422 - Halloween Costumes(区间DP 最少穿几件)

    http://www.cnblogs.com/kuangbin/archive/2013/04/29/3051392.html http://www.cnblogs.com/ziyi--caolu/a ...

  2. LightOJ - 1422 Halloween Costumes —— 区间DP

    题目链接:https://vjudge.net/problem/LightOJ-1422 1422 - Halloween Costumes    PDF (English) Statistics F ...

  3. LightOJ 1422 Halloween Costumes 区间dp

    题意:给你n天需要穿的衣服的样式,每次可以套着穿衣服,脱掉的衣服就不能再穿了,问至少要带多少条衣服才能参加所有宴会 思路:dp[i][j]代表i-j天最少要带的衣服 从后向前dp 区间从大到小 更新d ...

  4. light oj 1422 - Halloween Costumes

    题意:告诉有n场晚会中需要穿的衣服,衣服是可以套在其他衣服外面的,也就是说如果顺序为 1 2 1,那么可以将2套在1外面,第三场晚会需要穿1的时候把2脱掉即可,这样就只需要穿两次衣服.题目是再告诉了顺 ...

  5. dp之区间:Light oj 1422 Halloween Costumes

    http://lightoj.com/volume_showproblem.php?problem=1422 题意:给你n天需要穿的衣服的样式,每次可以套着穿衣服,脱掉的衣服就不能再穿了,问至少要带多 ...

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

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

  7. Light OJ 1031 - Easy Game(区间dp)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1031 题目大意:两个选手,轮流可以从数组的任意一端取值, 每次可以去任意个但仅 ...

  8. Light OJ 1033 - Generating Palindromes(区间DP)

    题目大意: 给你一个字符串,问最少增加几个字符使得这个字符串变为回文串.   ============================================================= ...

  9. Lightoj 题目1422 - Halloween Costumes(区间DP)

    1422 - Halloween Costumes   PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 ...

随机推荐

  1. html中的alt和title用法区别

    html中的alt和title用法区别 首先明确一下概念,alt是html标签的属性,而title既是html标签,又是html属性.title标签这个不用多说,网页的标题就是写在<title& ...

  2. EF没有同步更新(转)

    不知道这算不算一个bug,当你新建一个从数据库生成的edmx时,他能正确的生成所有的tt文件,但是当你从数据库更新表结构时,他不能正确的更新tt文件,以建立Model1.edmx为例,在解决方案中展开 ...

  3. Windows update 失败的解决方案

    由于刚刚装了新的系统,结果在电脑用了刚刚一周之后,我打开了自动更新,结果电脑就一直处于更新状态中.期初我以为是更新比较慢,等等可能就结束了,结果等了足足一晚上,到了第二天,电脑显示是:配置更新失败,正 ...

  4. 【leetcode】Merge Two Sorted Lists(easy)

    Merge two sorted linked lists and return it as a new list. The new list should be made by splicing t ...

  5. 执行HQL语句出现Remember that ordinal parameters are 1-based

    今天使用hibernate出个奇怪的错误,第一次碰到 Remember that ordinal parameters are 1-based! 原因是 问题发生的原因是:hql语句里不需要参数,却添 ...

  6. objective-c可变字典

     1 #pragma mark *****************************字典********************************  2 //        字典:通过ke ...

  7. [Android Pro] 告别编译运行 ---- Android Studio 2.0 Preview发布Instant Run功能

    reference to : http://www.cnblogs.com/soaringEveryday/p/4991563.html 以往的Android开发有一个头疼的且拖慢速度的问题,就是你每 ...

  8. 阿里云服务器 && 如何window链接到阿里云服务器

    现在的时间是:2016年10月11日 1:购买学生机 阿里云手机app上  ->  学生专区  ->  购买: 需要注意的是:如果没有自己需要的系统,比如没有linux操作系统的ecs,那 ...

  9. php支付宝接口用法

    现在流行的网站支持平台,支付宝当仁不让的老大了,现在我们就来告诉你如何使用支付宝api来做第三方支付,把支付宝放到自己网站来, alipay_config.php配置程序如下: <?php */ ...

  10. Android 注解工具 ButterKnife

    Butter Knife 是 Android 视图字段和方法绑定,使用注解处理来生成样板代码. 主要特性: 在字段使用 @FindView消除findViewById调用 使用 @FindViews在 ...