UVALive 4857 Halloween Costumes
区间dp。对于最左边的点:
1、在该点穿的衣服只有该点用的到,即穿上就脱下。所以dp[ l ][ r ] = min(dp[ l + 1][ r ] + 1, dp[ l ][ r ])。
2、衣服仍保留。这一步需要明确只有后面用到这件衣服才会选择保留。假如当前位置是i,j 位置和当前位置衣服相同。就可以考虑当前衣服一直穿到了 j 位置。因为在此期间该衣服可能还会被用到。所以我们把 j 位置保留下来,这样的话整个区间l ,r 就都可以用这件衣服了。 于是dp[ l ] [ r ] = min(dp[ l ][ r ], dp[l + 1][ j ] + dp[ j + 1][ r ] );
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#define LL long long
#define CLR(a, b) memset(a, b, sizeof(a)) using namespace std;
const int N = 110;
const int INF = 1e9 + 7; int dp[N][N];
int n, m, c[N]; int dfs(int l, int r)
{
if(l > r) return 0;
if(l == r) return 1;
if(dp[l][r] >= 0) return dp[l][r];
int &ret = dp[l][r];
ret = dfs(l + 1, r) + 1;
for(int i = l + 1; i <= r; i ++)
{
if(c[i] == c[l])
{
ret = min(ret, dfs(l + 1, i) + dfs(i + 1, r));
}
}
return ret;
} int main()
{
int t, cas = 1;
scanf("%d", &t);
while(t --)
{
scanf("%d%d", &n, &m);
c[0] = -1;
for(int i = 1; i <= n; i ++)
{
scanf("%d", &c[i]);
if(c[i] == c[i - 1])
n --, i --;
}
CLR(dp, -1);
printf("Case %d: %d\n", cas ++, dfs(1, n));
}
}
UVALive 4857 Halloween Costumes的更多相关文章
- UVA 4857 Halloween Costumes 区间背包
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...
- Lightoj 题目1422 - Halloween Costumes(区间DP)
1422 - Halloween Costumes PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 ...
- LightOj 1422 Halloween Costumes(区间DP)
B - Halloween Costumes Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu Submit ...
- LightOJ - 1422 Halloween Costumes —— 区间DP
题目链接:https://vjudge.net/problem/LightOJ-1422 1422 - Halloween Costumes PDF (English) Statistics F ...
- LightOJ - 1422 Halloween Costumes (区间dp)
Description Gappu has a very busy weekend ahead of him. Because, next weekend is Halloween, and he i ...
- Halloween Costumes(区间DP)
Gappu has a very busy weekend ahead of him. Because, next weekend is Halloween, and he is planning t ...
- 区间DP LightOJ 1422 Halloween Costumes
http://lightoj.com/volume_showproblem.php?problem=1422 做的第一道区间DP的题目,试水. 参考解题报告: http://www.cnblogs.c ...
- light oj 1422 Halloween Costumes (区间dp)
题目链接:http://vjudge.net/contest/141291#problem/D 题意:有n个地方,每个地方要穿一种衣服,衣服可以嵌套穿,一旦脱下的衣服不能再穿,除非穿同样的一件新的,问 ...
- 【LightOJ 1422】Halloween Costumes(区间DP)
题 题意 告诉我们每天要穿第几号衣服,规定可以套好多衣服,所以每天可以套上一件新的该号衣服,也可以脱掉一直到该号衣服在最外面.求最少需要几件衣服. 分析 DP,dp[i][j]表示第i天到第j天不脱第 ...
随机推荐
- hiho1393二分图多重匹配
题目链接:[http://hihocoder.com/problemset/problem/1393] 题意:中文题意. 题解:二分图的多重匹配.主要是建图然后跑一个最带流,再判断一下就可以了. 建图 ...
- [bzoj1017][JSOI2008]魔兽地图 DotR (Tree DP)【有待优化】
Description DotR (Defense of the Robots) Allstars是一个风靡全球的魔兽地图,他的规则简单与同样流行的地图DotA (Defense of the Anc ...
- bzoj 3932: [CQOI2015]任务查询系统 -- 主席树 / 暴力
3932: [CQOI2015]任务查询系统 Time Limit: 20 Sec Memory Limit: 512 MB Description 最近实验室正在为其管理的超级计算机编制一套任务管 ...
- 拉普拉斯(Laplace)分布
Laplace分布的概率密度函数的形式是这样的: $p(x) = \frac{1}{2 \lambda} e^{-\frac{\vert x –\mu \vert}{\lambda}}$ 一般$\ ...
- mybatis源码分析(4)----org.apache.ibatis.binding包
1. 我们通过接口操作数据库时,发现相关的操作都是在org.apache.ibatis.binding下 从sqSessin 获取getMapper() SqlSession session = s ...
- kafka_2.11-0.8.2.1单机版安装
1.下载kafka安装包wget http://mirrors.cnnic.cn/apache/kafka/0.8.2.1/kafka_2.11-0.8.2.1.tgz 2.复制到安装目录cp kaf ...
- 查看linux启动的线程信息
1.某一进程所有的线程个数.启动时间 ps max -o lstart,lwp,pid,nlwp,cmd|more lstart: STARTED time the command start ...
- 去除两端margin的方法
假如有一份视觉稿,其中一部分是实现这样的: 两排横向排列的框,它们中间有边距,两端无边距.每个框大小为100*100,外边距为20,整个区域为460*220. HTML结构: <div> ...
- mysql表前缀
之前一直没明白,mysql有些规范里面,建议建表的时候添加前缀,它的意义究竟是为何.直到最近,我想学习一下Swift的网络请求,于是打算在新浪云新建个项目却发现新浪云免费用户最多只能建立5个项目.于是 ...
- 关于DIV多层嵌套的margin-top的BUG
今天在做登录页面的时候发现个margin-top的bug ; 初始代码如下: html: <div class="logo"></div> <div ...