原题: BZOJ1032 (原题数据有问题)

/*hdu6212[区间dp] 2017青岛ACM-ICPC网络赛*/
#include <bits/stdc++.h>
using namespace std;
int T, n, tot = , kase = ;
char s[];
int dp[][], cnt[], col[];
void solve() {
memset(dp, 0x3f, sizeof(dp));
tot = ;
n = strlen(s);
cnt[tot] = , col[tot] = s[] - '';
for (int i = ; i < n; i++) {
if (s[i] == s[i - ]) cnt[tot]++;
else {
cnt[++tot] = ;
col[tot] = s[i] - '';
}
}
n = tot;
for (int i = ; i <= n; i++) dp[i][] = cnt[i] >= ? : ;
for (int j = ; j <= n; j++) {
for (int i = ; i + j - <= n; i++) {
if (col[i] == col[i + j - ]) {
if (cnt[i] + cnt[i + j - ] < ) {
dp[i][j] = dp[i + ][j - ] + (cnt[i] + cnt[i + j - ] == );
for (int k = ; k < j; k++) {
if (col[i + k - ] == col[i] && cnt[i + k - ] == ) {
dp[i][j] = min(dp[i][j], dp[i + ][k - ] + dp[i + k][j - k - ]);
}
}
}
else dp[i][j] = dp[i + ][j - ];
}
for (int k = ; k < j; k++) {
dp[i][j] = min(dp[i][j], dp[i][k] + dp[i + k][j - k]);
}
}
}
printf("Case #%d: %d\n", kase++, dp[][n]);
}
int main() {
scanf("%d", &T);
while (T--) {
scanf("%s", s);
solve();
}
return ;
}
// 011011100000001010101110011000 ans=4
// 10110011001101 ans=3

最新文章

  1. C语言的傻瓜式随笔(一):嵌套循环-程序结构
  2. iframe跨域cookie问题
  3. [AngularJS] 使用AngularAMD动态加载Controller
  4. 微信公众平台回复链接可以直接访问,但不能是锚文字链接&lt;a&gt;标签
  5. 简单通过java的socket&amp;serversocket以及多线程技术实现多客户端的数据的传输,并将数据写入hbase中
  6. Delphi的VCL组件库
  7. WordPress 常用数据库SQL查询语句大全
  8. 对话框 自定义 IOS风格 包青天
  9. 《实战Java高并发程序设计》pdf
  10. mysql 分析2 show processlist ;
  11. 安卓Native和H5页面进行交互
  12. 报表软件公司悬赏 BUG,100块钱1个的真实用意
  13. 第60章 设备流交互服务 - Identity Server 4 中文文档(v1.0.0)
  14. Linux环境下部署开源版“禅道”方法
  15. socket,tcp,http三者之间的区别和原理
  16. 设计模式C++学习笔记之十七(Chain of Responsibility责任链模式)
  17. python 条件与循环
  18. Uncaught InvalidStateError: Failed to set the &#39;value&#39; property on &#39;HTMLInputElement&#39;: This input element accepts a filename, which may only be programmatically set to the empty string.
  19. linux的基本操作与常见命令
  20. winform 记事本 剪切 粘贴 全选 撤销

热门文章

  1. MySQL binlog server
  2. Java反射得到属性的值和设置属性的值
  3. Ubuntu安装mysql和简单使用
  4. Mybatis自查询递归查找子
  5. Oracle数据库学习(二)
  6. &quot;mysql&quot;.&quot;innodb_table_stats&quot; not found 故障解决
  7. 大道至简读后感——JAVA伪代码
  8. while循环中continue和break的区别
  9. 库函数的使用:sscanf的使用方法
  10. 51nod_1255字典序最小的子序列