BZOJ1260[CQOI2007]涂色paint (区间DP)
来源:互联网 发布:江湖婚庆 3.0源码 编辑:程序博客网 时间:2024/05/22 12:55
BZOJ1260[CQOI2007]涂色paint 区间DP
Description
给定一个空白木板,你一次可以把一个区间的木板改成一中颜色,
问要求变成给定颜色的木板最少要多少次染色。
题解
这是典型的区间DP,
根据套路 ,我们可以得到dp式
如果c[l]==c[r] f[l][r]=min(f[l+1][r],f[l][r-1])
f[l][r]=min(f[l][k]+f[k+1][r])
#include <cstdio>#include <iostream>#include <cmath>#include <map>#include <algorithm>#include <cstring>#include <climits>#define MAXN 1000using namespace std;char c[MAXN];int n,f[MAXN][MAXN];int main(){ scanf("%s",c+1); n=strlen(c+1); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) f[i][j]=i==j?1:(~(1<<31)); for(int len=1;len<=n;len++) for(int l=1,r;(l+len-1)<=n;l++) { r=l+len-1; if(c[l]==c[r]) { if(l==r) f[l][r]=1; else f[l][r]=min(f[l][r-1],f[l+1][r]); }else for(int k=l;k<r;k++) f[l][r]=min(f[l][r],f[l][k]+f[k+1][r]); } printf("%d\n",f[1][n]); return 0;}
阅读全文
0 0
- 【BZOJ1260】[CQOI2007]涂色paint 【区间DP】
- BZOJ1260: [CQOI2007]涂色paint 区间DP
- BZOJ1260[CQOI2007]涂色paint (区间DP)
- BZOJ1260:[CQOI2007]涂色paint(区间DP)
- bzoj1260 [CQOI2007]涂色paint 区间DP
- 【区间DP】BZOJ1260(CQOI2007)[涂色paint]题解
- BZOJ1260(CQOI2007)[涂色paint]--区间DP
- bzoj1260: [CQOI2007]涂色paint dp
- 【bzoj1260】【CQOI2007】【涂色paint】【dp】
- 【bzoj1260】 [CQOI2007]涂色paint
- BZOJ1260: [CQOI2007]涂色paint
- bzoj1260 [CQOI2007]涂色paint
- bzoj1260: [CQOI2007]涂色paint
- 【bzoj1260】[CQOI2007]涂色paint
- bzoj1260 [CQOI2007]涂色paint
- BZOJ1260 [CQOI2007]涂色paint
- *bzoj1260 [CQOI2007] 涂色paint 题解
- 【BZOJ】1260: [CQOI2007]涂色paint 区间dp
- 使用MultipartEntity上传图片文件
- 计算机的硬件组成
- 进程通信--总结
- Shell变量
- 王怡︱上帝的护理之工
- BZOJ1260[CQOI2007]涂色paint (区间DP)
- C#知识学习 遗忘的记忆 -第二天
- 2971:抓住那头牛
- Froms的使用实例
- 交换机的基础知识
- Foreach与迭代器
- 排序--直接插入排序
- UGUI(七)界面拖动和焦点界面
- 【七日牧函】基督教传统中的友谊