HDU 6212 Zuma 2017青岛网络赛 区间DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6212
解法;看了眼题就发现这个BZOJ 1032不是一毛一样?但是BZOJ上那是个巨坑,数据有错,原来A的是一个假题。。2333,但是我并不知道POJ上也有这个题2333。。。网赛现场没做出来,感觉现场做出来的很多都知道这个题是原题吧。。参考这个论文:http://www.docin.com/p-685411874.html
解法:这个题主要是区间DP的转移怎么写?
有三种消除方式:
1.直接将区间分成两部分,各消各的。
2.如果两头是同色的,可以消完中间的,合并后消去两头,代价和两头的数量有关。
3.如果两头同色,又存在一头只有一个连续的情况,可以中间再找一个相同颜色的,三个合并后再消。
代码不难写出来:
#include <bits/stdc++.h>
using namespace std;
const int maxn = 222;
int a[maxn], dp[maxn][maxn];
char s[maxn]; int main()
{
int T, ks=0;
scanf("%d", &T);
while(T--){
scanf("%s", s);
int len = strlen(s);
int m = 0;
a[++m] = 1;
for(int i=1; i<len; i++){
if(s[i] != s[i-1]) a[++m] = 0;
a[m]++;
}
for(int i=m; i>0; i--){
for(int j=i; j<=m; j++){
if(i==j){
dp[i][j] = 3-a[i];
continue;
}
dp[i][j] = 0x70;
for(int k=i; k<j; k++){
dp[i][j] = min(dp[i][j], dp[i][k]+dp[k+1][j]);//分成2半来做
}
if((j-i)&1) continue; //间隔为奇数,则不是同种颜色
dp[i][j] = min(dp[i][j], dp[i+1][j-1]+(a[i]+a[j]==2));//i和j同色,可以等中间消掉,如果两边都是1还得加上1的代价
if(a[i]+a[j] < 4){
for(int k=i+2; k<j; k+=2)
if(a[k] == 1) dp[i][j] = min(dp[i][j], dp[i+1][k-1]+dp[k+1][j-1]);
}
}
}
printf("Case #%d: %d\n", ++ks, dp[1][m]);
}
return 0;
}
HDU 6212 Zuma 2017青岛网络赛 区间DP的更多相关文章
- HDU 6201 2017沈阳网络赛 树形DP或者SPFA最长路
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6201 题意:给出一棵树,每个点有一个权值,代表商品的售价,树上每一条边上也有一个权值,代表从这条边经过 ...
- 2017青岛网络赛1011 A Cubic number and A Cubic Number
A Cubic number and A Cubic Number Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 65535/3276 ...
- 2017青岛网络赛1008 Chinese Zodiac
Chinese Zodiac Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) T ...
- 2017 青岛网络赛 Chenchen, Tangtang and ZengZeng
Chenchen, Tangtang and ZengZeng are starting a game of tic-tac-toe, played on a 3 × 3 board. Initial ...
- hdu 4274 2012长春赛区网络赛 树形dp ***
设定每个节点的上限和下限,之后向上更新,判断是否出现矛盾 #include<cstdio> #include<iostream> #include<algorithm&g ...
- hdu 4028 2011上海赛区网络赛H dp+map离散
一开始用搜索直接超时,看题解会的 #include<iostream> #include<cstdio> #include<map> #include<cst ...
- HDU 5880 Family View (2016 青岛网络赛 C题,AC自动机)
题目链接 2016 青岛网络赛 Problem C 题意 给出一些敏感词,和一篇文章.现在要屏蔽这篇文章中所有出现过的敏感词,屏蔽掉的用$'*'$表示. 建立$AC$自动机,查询的时候沿着$fa ...
- hdu 6152 : Friend-Graph (2017 CCPC网络赛 1003)
题目链接 裸的结论题.百度 Ramsey定理.刚学过之后以为在哪也不会用到23333333333,没想到今天网络赛居然出了.顺利在题面更改前A掉~~~(我觉得要不是我开机慢+编译慢+中间暂时死机,我还 ...
- 2017北京网络赛 J Pangu and Stones 区间DP(石子归并)
#1636 : Pangu and Stones 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 In Chinese mythology, Pangu is the fi ...
随机推荐
- ZJOI2018外省选手酱油记Day1
Day0 上午考试...又爆零了 下午讲完题后放假 然后就滚回去收拾行李准备去\(ZJ\) Day1 衢州?我怎么从来没听过这个地方..肯定是我见识少 下午 上高铁出发,\(3个小时\),看了一下电影 ...
- 使用IDEA远程部署tomcat和调试
环境: CentOS 7 Tomcat 9.0.1 jdk-9.0.1 IntelliJ IDEA 2017.3 Tomcat中的配置 在catalina.sh文件中加入以下的配置 CATALINA_ ...
- CVE-2018-1111劫持dhcp造成centos代码执行漏洞
0x01 漏洞概述 近日,红帽官方发布了安全更新,修复了编号为CVE-2018-1111的远程代码执行漏洞,攻击者可以通过伪造DHCP服务器发送响应包,攻击红帽系统,获取root权限并执行任意命令. ...
- Python之旅:集合
Python数据类型 #作用:去重,关系运算, #定义: 知识点回顾 可变类型是不可hash类型 不可变类型是可hash类型 #定义集合: 集合:可以包含多个元素,用逗号分割, 集合的元素遵循三个原则 ...
- laravel Collection mapToDictionary 例子
源码 示例 <?php require __DIR__ . '/bootstrap/app.php'; $arr = [ [ 'name' => 'John', 'age' => 2 ...
- ICMP类型和代号对照表
ICMP类型 TYPE CODE Description Query Error 0 0 Echo Reply——回显应答(Ping应答) x 3 0 Network Unreachable——网 ...
- Qt error ------ no matching function for call to QObject::connect(QSpinBox*&, <unresolved overloaded function type>, QSlider*&, void (QAbstractSlider::*)(int))
connect(ui->spinBox_luminosity,&QSpinBox::valueChanged, ui->horizontalSlider_luminosity, & ...
- sqlalchemy外键关联
一.创建两张表,并关联外键 导入ForenginKey模块 # -*- coding: UTF-8 -*- from sqlalchemy import create_engine from sqla ...
- Centos6.6下安装nginx1.6.3
安装环境: [root@nginx ~]# cat /etc/redhat-release CentOS release 6.6 (Final) [root@nginx ~]# uname -r 2. ...
- linux命令总结之seq命令
功能: seq命令用于产生从某个数到另外一个数之间的所有整数. 语法: seq [选项]... 尾数 seq [选项]... 首数 尾数 seq [选项]... 首数 增量 尾数 选项: -f, -- ...