hdu6212[区间dp] 2017青岛ACM-ICPC网络赛
原题: 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
hdu6212[区间dp] 2017青岛ACM-ICPC网络赛的更多相关文章
- 2017 ICPC网络赛(西安)--- Xor
题目连接 Problem There is a tree with n nodes. For each node, there is an integer value ai, (1≤ai≤1,000 ...
- Ryuji doesn't want to study 2018徐州icpc网络赛 树状数组
Ryuji is not a good student, and he doesn't want to study. But there are n books he should learn, ea ...
- 【2018ACM/ICPC网络赛】沈阳赛区
这次网络赛没有打.生病了去医院了..尴尬.晚上回来才看了题补简单题. K Supreme Number 题目链接:https://nanti.jisuanke.com/t/31452 题意:输入一个 ...
- 2017 ACM-ICPC 亚洲区(青岛赛区)网络赛 1010
#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #inclu ...
- 2017 ACM-ICPC 亚洲区(青岛赛区)网络赛 1009
#include<cmath> #include<set> #include<list> #include<deque> #include<map ...
- Trace 2018徐州icpc网络赛 (二分)(树状数组)
Trace There's a beach in the first quadrant. And from time to time, there are sea waves. A wave ( xx ...
- 2015年ACM长春网络赛(准备做掉7道:已经更新到6道)
总结汇总:模板 int getmax_min(char s[]) {//字符串的最大表示法:返回最小数组下标 , j = , k = ; while(i < len && j & ...
- 2013 acm 长沙网络赛 G题 素数+枚举 Goldbach
题目 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3856 先预处理求出两个素数的和与积,然后枚举n-prime和n/pr ...
- 近几年ACM/ICPC区域赛铜牌题
2013 changsha zoj 3726 3728 3736 3735 2013 chengdu hud 4786 4788 4790 2013 hangzhou hdu 4770 4771 47 ...
随机推荐
- IOS 当一个控件被添加到父控件中会调用(didMoveToSuperview)
/** * 当一个控件被添加到父控件中就会调用 */ - (void)didMoveToSuperview { if (self.group.opened) { self.nameView.image ...
- GBDT回归的原理及Python实现
一.原理篇 1.1 温故知新回归树是GBDT的基础,之前的一篇文章曾经讲过回归树的原理和实现.链接如下: 回归树的原理及Python实现 1.2 预测年龄仍然以预测同事年龄来举例,从<回归树&g ...
- 谭浩强 c++程序设计第一章课后习题 第7题
#include <iostream> using namespace std; int main() { int a,b,c; int f(int x,int y,int z);//这是 ...
- 线程池是什么?Java四种线程池的使用介绍
使用线程池的好处有很多,比如节省系统资源的开销,节省创建和销毁线程的时间等,当我们需要处理的任务较多时,就可以使用线程池,可能还有很多用户不知道Java线程池如何使用?下面小编给大家分享Java四种线 ...
- SQL初次接触
1.SQL对大小写不敏感 2.部分SQL数据库要求结尾分号 3.分为两种DML(数据操作语言)和DDL(数据定义语言) sql中一些注意要点 1.设置主键 一般会在一个数据内设置一个主键(名字通常为i ...
- JZOJ 4738. 神在夏至祭降下了神谕 DP + 线段树优化
4738. 神在夏至祭降下了神谕 Time Limits: 1000 ms Memory Limits: 262144 KB Detailed Limits Goto ProblemSet D ...
- Python登录人人网并抓取新鲜事
from sgmllib import SGMLParser import sys,urllib2,urllib,cookielib class spider(SGMLParser): def ...
- postgreysql
基础 syntax * \help 生成所有的pg命令 * abort 终止事务/work * alter aggregate 修改聚合函数的定义 ALTER AGGREGATE name ( typ ...
- python基础——18(面向对象2+异常处理)
一.组合 自定义类的对象作为另一个类的属性. class Teacher: def __init__(self,name,age): self.name = name self.age = age t ...
- go经典练习题涉及流程控制-字符串-struct-map的数据类型的处理
one:求1到100之间的质数 package main import ( "fmt" ) func isPrime(n int) bool { var flag = true f ...