light oj 1422 Halloween Costumes (区间dp)
题目链接: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)的更多相关文章
- Light OJ 1422 - Halloween Costumes(区间DP 最少穿几件)
http://www.cnblogs.com/kuangbin/archive/2013/04/29/3051392.html http://www.cnblogs.com/ziyi--caolu/a ...
- LightOJ - 1422 Halloween Costumes —— 区间DP
题目链接:https://vjudge.net/problem/LightOJ-1422 1422 - Halloween Costumes PDF (English) Statistics F ...
- LightOJ 1422 Halloween Costumes 区间dp
题意:给你n天需要穿的衣服的样式,每次可以套着穿衣服,脱掉的衣服就不能再穿了,问至少要带多少条衣服才能参加所有宴会 思路:dp[i][j]代表i-j天最少要带的衣服 从后向前dp 区间从大到小 更新d ...
- light oj 1422 - Halloween Costumes
题意:告诉有n场晚会中需要穿的衣服,衣服是可以套在其他衣服外面的,也就是说如果顺序为 1 2 1,那么可以将2套在1外面,第三场晚会需要穿1的时候把2脱掉即可,这样就只需要穿两次衣服.题目是再告诉了顺 ...
- dp之区间:Light oj 1422 Halloween Costumes
http://lightoj.com/volume_showproblem.php?problem=1422 题意:给你n天需要穿的衣服的样式,每次可以套着穿衣服,脱掉的衣服就不能再穿了,问至少要带多 ...
- 【LightOJ 1422】Halloween Costumes(区间DP)
题 题意 告诉我们每天要穿第几号衣服,规定可以套好多衣服,所以每天可以套上一件新的该号衣服,也可以脱掉一直到该号衣服在最外面.求最少需要几件衣服. 分析 DP,dp[i][j]表示第i天到第j天不脱第 ...
- Light OJ 1031 - Easy Game(区间dp)
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1031 题目大意:两个选手,轮流可以从数组的任意一端取值, 每次可以去任意个但仅 ...
- Light OJ 1033 - Generating Palindromes(区间DP)
题目大意: 给你一个字符串,问最少增加几个字符使得这个字符串变为回文串. ============================================================= ...
- Lightoj 题目1422 - Halloween Costumes(区间DP)
1422 - Halloween Costumes PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 ...
随机推荐
- 【转】CV_EXPORT定义的作用,lib及dll的区别
http://blog.csdn.net/viewcode/article/details/8021989 在core.hpp中,CV_EXPORT是出现频率最高的词之一. 1. CV_EXPORT是 ...
- windows一个目录下最大文件数目
对于FAT16文件系统, 可以保存的文件体积最大值是 4 GB - 1 byte (2^32 bytes - 1 byte): 卷的最大体积是4GB:每个卷上最多可以保存的文件数量是65,536个 ( ...
- Mysql手册—SQLStatementSyntax
14.1.1 ALTER DATABASE Syntax,可用于修改数据库字符集和校验规则 查看校验规则可如下: 由于utf8的校验规则都是ci(case insensitive),所以是不区分大小写 ...
- openfile学习笔记
Openfiler是在rPath Linux基础上开发的,它能够作为一个独立的Linux操作系统发行.Openfiler是一款非常好的存储管理操作系统,开源免费,通过web界面对 存储磁盘的管理,支持 ...
- Swing开发之JComboBox篇
http://blog.csdn.net/sjf0115/article/details/6991579
- printf 打印 unit32_t
今天在网上找了老半天终于找到了:printf 打印 uint32_t 类型 uint32_t domainId; printf("\ndomainId=========%lu", ...
- IE11 的区别
http://msdn.microsoft.com/zh-tw/visualc/bg182625
- JS获取浏览器高度 并赋值给类
在给网站做轮播焦点图的时候,如果需要全屏的话,可以用下面的jQuery来获取浏览器高度,然后赋值给类. $(window).load(function () { var maxHeight = 0; ...
- 20145206邹京儒《Java程序设计》第8周学习总结
20145206 <Java程序设计>第8周学习总结 教材学习内容总结 第十四章 NIO与NIO2 14.1 认识NIO NIO使用频道(Channel)来衔接数据节点,在处理数据时,NI ...
- .NET 在浏览器中下载TXT文件
通常我们用浏览器打开Txt文件时候,浏览器会直接打开,我们想要txt下载到本地该怎么操作,用js也可以,单不能兼容所有的浏览器,所以我们可以在服务端做处理,代码如下: //TXT文件生成页面 publ ...