LightOJ 1422 Halloween Costumes(区间DP)
来源:互联网 发布:网络搞笑歌曲你是谁 编辑:程序博客网 时间:2024/04/28 23:55
思路:分两种转移,一种直接穿上一件dp[i][j] = dp[i + 1][j] + 1;
另一种是,这一件重复使用,那么就要在区间内枚举出c[i] == c[l]的位置,然后dp[i][j] = min(dp[l + 1][i - 1] + dp[i][r]);
代码:
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 105;int t, n, c[N];int dp[N][N];int dfs(int l, int r) {if (dp[l][r] != -1) return dp[l][r];if (l > r) return dp[l][r] = 0;dp[l][r] = dfs(l + 1, r) + 1;for (int i = l + 1; i <= r; i++)if (c[i] == c[l])dp[l][r] = min(dp[l][r], dfs(l + 1, i - 1) + dfs(i, r));return dp[l][r];}int main() {int cas = 0; scanf("%d", &t);while (t--) {scanf("%d", &n);memset(dp, -1, sizeof(dp));for (int i = 1; i <= n; i++)scanf("%d", &c[i]);printf("Case %d: %d\n", ++cas, dfs(1, n)); }return 0;}
0 0
- LightOJ - 1422 Halloween Costumes (区间DP)
- LightOJ 1422 Halloween Costumes(区间dp)
- LightOJ 1422 Halloween Costumes(区间DP)
- 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)
- 区间dp LightOj 1422 Halloween Costumes
- LightOJ 1422 Halloween Costumes 【区间DP】
- LightOJ 1422 Halloween Costumes (区间dp)
- LightOJ 1422 Halloween Costumes (区间DP)
- wpf inkcanvas customink 毛笔效果
- 应用框架的设计与实现.net平台--内存跨领域组件--内存操作
- Set Matrix Zeroes|leetcode题解
- Centos 7 设置默认启动命令窗口以及网卡设置
- Cocos2d-x内存管理
- LightOJ 1422 Halloween Costumes(区间DP)
- c# 中DevExpress的安装
- Java虚拟机(三):垃圾收集方式-分代,复制,标记整理算法
- 字符串原地压缩
- 利用python采集分析人人网社交网络数据
- python challenge 01
- iOS使用pod初次加载错误:Permission denied
- 鼠标经过就放大
- JNA—JNI终结者