【bzoj1260】 [CQOI2007]涂色paint
2015-09-29 21:51
447 查看
刷水成性啊……TAT
题意比较蛋疼,就是说一开始一个序列是空的,然后每次可以将连续的一段染成同一颜色,问多少次才能到目标状态。
显然是dp嘛
f[i][j]f[i][j]表示区间[i,j]需要染色多少次
首先初始状态是f[i][i]=1f[i][i]=1和f[i][i+1]=[stri==stri+1]f[i][i+1]=[str_{i}==str_{i+1}]
然后从短区间地推到长区间
对于f[i][j]f[i][j],若stri==strjstr_{i}==str_{j},则有f[i][j]=min{f[i+1][j],f[i][j−1],f[i+1][j−1]+1}f[i][j]=min\{f[i+1][j],f[i][j-1],f[i+1][j-1]+1\},否则f[i][j]=min{f[i][k]+f[k+1][j]∣i≤k<j}f[i][j]=min\{f[i][k]+f[k+1][j]\mid i\leq k
O(n3)O(n^{3})随便乱搞啦。。。
题意比较蛋疼,就是说一开始一个序列是空的,然后每次可以将连续的一段染成同一颜色,问多少次才能到目标状态。
显然是dp嘛
f[i][j]f[i][j]表示区间[i,j]需要染色多少次
首先初始状态是f[i][i]=1f[i][i]=1和f[i][i+1]=[stri==stri+1]f[i][i+1]=[str_{i}==str_{i+1}]
然后从短区间地推到长区间
对于f[i][j]f[i][j],若stri==strjstr_{i}==str_{j},则有f[i][j]=min{f[i+1][j],f[i][j−1],f[i+1][j−1]+1}f[i][j]=min\{f[i+1][j],f[i][j-1],f[i+1][j-1]+1\},否则f[i][j]=min{f[i][k]+f[k+1][j]∣i≤k<j}f[i][j]=min\{f[i][k]+f[k+1][j]\mid i\leq k
O(n3)O(n^{3})随便乱搞啦。。。
[code]#include <bits/stdc++.h> using namespace std; #define rep(i,a,b) for(int i=a;i<=b;i++) #define maxn 51 inline void upmin(int&a , int b) { if (a > b) a = b ; } int f[maxn][maxn] , n; char s[maxn]; int main() { scanf("%s" , s + 1); n = strlen(s + 1) , memset(f , 0x3f , sizeof(f)); rep(i , 1 , n) f[i][i] = 1; rep(l , 1 , n) rep(i , 1 , n - l) { int j = i + l; if (s[i] == s[j]) { if (l == 1) f[i][j] = 1; else { f[i][j] = min(f[i][j - 1] , f[i + 1][j]); upmin(f[i][j] , f[i + 1][j - 1] + 1); } } else rep(k , i , j - 1) upmin(f[i][j] , f[i][k] + f[k + 1][j]); } printf("%d\n" , f[1] ); return 0; }
相关文章推荐
- 【POJ 3007】 Organize Your Train part II (字符串HASH)
- 【DATAGUARD】物理dg配置客户端无缝切换 (八.2)--Fast-Start Failover 的配置
- URLDecoder: Incomplete trailing escape (%) pattern
- Xcode 中的main.m
- hdu 5478(2015 ACM/ICPC Asia Regional Shanghai Online )
- Learning Spark - LIGHTNING-FAST DATA ANALYSIS 第四章 - (2)
- POJ 1422 Air Raid (最小路径覆盖)
- 第四章 约束(constraints)
- UVALive 6885 Flowery Trails
- 安卓:service,AID通信,有服务端和客户端的
- Error Domain=AVFoundationErrorDomain Code=-11800 "这项操作无法完成"
- 求两个树结点的最低公共祖先(Again)
- AIX系统文件编辑
- 防止垃圾email的spf的DNS记录
- 安卓:service间通信AID实现
- Windows Server 2012 磁盘管理之 简单卷、跨区卷、带区卷、镜像卷和RAID-5卷
- LeetCode -- Climbing Stairs
- Codeforces Round #233 (Div. 2)D. Painting The Wall 概率DP
- chrome浏览器调试报错:Failed to load resource: the server responsed width a status of 404 (Not Found)…http://127.0.0.1:5099/favicon.ico
- failed to install service or service already installed