LightOJ 1422 Halloween Costumes(区间dp)
来源:互联网 发布:北京方便面的危害知乎 编辑:程序博客网 时间:2024/06/06 15:37
/*date: 2016/11/5writer: CN_swords题意:给你n天分别要穿的衣服,可以套着穿,但是一旦脱下来就不能再穿了,问这n天要准备几件衣服。题解:dp[i][j] 代表i天到j天最少需要准备的衣服;如果求dp[i][j],在(i+1,j)的区间内如果不考虑与i天一样的衣服,那么dp[i][j] = dp[i+1][j]+1;如果找到k天与i天一样,我们可以把i天的衣服一直保留到k天,那么dp[i][j] = dp[i+1][k-1]+dp[k][j];*/#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 105;int a[N];int dp[N][N];int main(){ int T,cas = 1; scanf("%d",&T); while(T--) { int n; scanf("%d",&n); for(int i = 1; i <= n; i++) scanf("%d",&a[i]); printf("Case %d: ",cas++); memset(dp,0,sizeof(dp)); for(int i = 1; i <= n; i++) dp[i][i] = 1; for(int len = 1; len < n; len++) { for(int i = 1; i+len <= n; i++) { int l = i, r = i+len; dp[l][r] = dp[l+1][r]+1; for(int k = i+1; k <= r; k++) { if(a[i] == a[k]) dp[l][r] = min(dp[l][r],dp[l+1][k-1]+dp[k][r]); } } } printf("%d\n",dp[1][n]); } return 0;}
0 0
- Lightoj 1422 Halloween Costumes(区间DP)
- LightOJ 1422 Halloween Costumes 区间DP
- LightOJ - 1422 Halloween Costumes (区间DP)
- LightOJ 1422 Halloween Costumes(区间dp)
- LightOJ 1422 Halloween Costumes(区间DP)
- LightOJ 1422 - Halloween Costumes(区间DP)
- 区间dp LightOj 1422 Halloween Costumes
- lightoj 1422Halloween Costumes(区间dp)
- LightOJ 1422 Halloween Costumes 【区间DP】
- LightOJ 1422 Halloween Costumes (区间dp)
- LightOJ 1422 Halloween Costumes (区间DP)
- lightoj-1422-Halloween Costumes 区间dp
- LightOJ - 1422 Halloween Costumes 区间DP
- LightOJ 1422 Halloween Costumes(区间DP )
- lightoj 1422 - Halloween Costumes 【区间dp入门】
- lightoj 1422 - Halloween Costumes(区间DP)
- LightOj 1422 Halloween Costumes(区间DP)
- LightOJ 1422 Halloween Costumes (区间DP)
- TabLayout的使用详解
- VR学习第一节:VR是什么?VR AR的区别
- loading
- 最大公约数(辗转相除法和更相减损法)
- PHP 无限极分类数组
- LightOJ 1422 Halloween Costumes(区间dp)
- Android studio 正确应用Xutils3
- unity3d加载外部图片
- Eisenberg-McGuire算法
- CentOS 添加环境变量的三种方法
- 分治算法——循环赛日程安排问题(Java实现)
- 牛客网刷题之左旋转字符串
- PHP取地址符
- coredata学习总结(六)