LOJ 1422(区间DP)
来源:互联网 发布:2016coc双王升级数据 编辑:程序博客网 时间:2024/05/18 13:10
转移方程 dp[i][j] = min(dp[i+1][j] + 1 , dp[i+1][k-1] + dp[k][j]);
dp数组代表i到j最少需要多少件衣服。
k 代表在i+1到j内符合 s[i] = s[k] 的k值;
如果k值不存在那么 等于上一个区间加上一件新衣服。
#include <bits/stdc++.h>#define INF 0x3f3f3fusing namespace std;const int maxn = 500;int T;int n;int s[maxn];int dp[maxn][maxn];int main(){ cin >> T; int kase = 1; while(T--) { memset(dp,0,sizeof(dp)); memset(s,0,sizeof(s)); cin >> n; for(int i = 1 ; i <= n; i++) { cin >> s[i]; } for(int i = 1 ; i <= n ; i++) { dp[i][i] = 1; } for(int l = 1 ; l <= n ; l++) { for(int i = 1; i + l <= n ;i++) { int j = i + l; bool flag = false; dp[i][j] = dp[i+1][j] + 1; for(int k = i + 1 ; k <= j ;k++) { if(s[k] == s[i]) { dp[i][j] = min(dp[i][j] , dp[i+1][k-1] + dp[k][j]); flag = true; } } } } printf("Case %d: %d\n",kase++,dp[1][n]); } return 0;}
阅读全文
1 0
- LOJ 1422(区间DP)
- LOJ 1422 Halloween Costumes【区间DP】
- loj 1031(区间dp+记忆化搜索)
- loj 1038(dp求期望)
- loj 1044(dp+记忆化搜索)
- loj #6235. 区间素数个数(素数筛)
- LightOJ 1422(区间DP)
- Lightoj 1422 (区间dp)
- loj 1004(dp)
- loj 1017(dp)
- loj 1032(数位dp)
- loj 1036(dp)
- loj 1037(状压dp)
- loj 1030概率dp
- loj 1032 数位dp
- loj 1357(树形dp)
- LOJ 1017 普通dp
- 【树链剖分+树状数组区间修改区间和】BZOJ4034(LOJ#2125)[HAOI2015]树上操作
- IDEA下使用Lombok
- C语言中如何获取系统时间?
- 读写文件read/write
- 猪王争霸
- android build 完成时发出通知
- LOJ 1422(区间DP)
- 错误解决方案
- 蓝桥杯_算法训练_大小写转换
- 【jzoj3771】【NOI2015模拟8.15】【小 Z 的烦恼】
- C++ virtual关键字
- 记一次寻找http代理修改过程
- poj
- myEclipse导出可运行的jar包
- 源码编译报 Xmx Size、GC、ninja 相关错误解决方案