Codevs (3657括号序列 )
题目链接:传送门
题目大意:中文题,略
题目思路:区间DP
这个题是问需要添加多少个括号使之成为合法括号序列,那么我们可以先求有多少合法的括号匹配,然后用字符串长度减去匹配的括号数就行
状态转移方程主要是对于我们枚举的区间 dp[i][j],如果 i 和 j 处的括号能够匹配,则dp[i][j]=dp[i+1][j-1]+1;
因为我们是从小到大枚举长度,所以小长度的区间一定是最优的,所以当 i 与 j 匹配时,则是子区间的最优值+1
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <stack>
#include <cctype>
#include <queue>
#include <string>
#include <vector>
#include <set>
#include <map>
#include <climits>
#define lson root<<1,l,mid
#define rson root<<1|1,mid+1,r
#define fi first
#define se second
#define ping(x,y) ((x-y)*(x-y))
#define mst(x,y) memset(x,y,sizeof(x))
#define mcp(x,y) memcpy(x,y,sizeof(y))
using namespace std;
#define gamma 0.5772156649015328606065120
#define MOD 1000000007
#define inf 0x3f3f3f3f
#define N 100005
#define maxn 1050
typedef pair<int,int> PII;
typedef long long LL; int n,m,cnt,temp,ans;
char str[];
int dp[][];
int main(){
int i,j,group,Case=;
while(scanf("%s",str+)!=EOF){
mst(dp,);
int len=strlen(str+);
for(int p=;p<=len;++p)
for(i=;i<=len;++i){
j=i+p-;if(j>len)break;
if((str[i]=='('&&str[j]==')')||(str[i]=='['&&str[j]==']'))dp[i][j]=dp[i+][j-]+;
for(int k=i;k<j;++k){
dp[i][j]=max(dp[i][j],dp[i][k]+dp[k+][j]);
}
}
printf("%d\n",len-dp[][len]*);
}
return ;
}
Codevs (3657括号序列 )的更多相关文章
- CODEVS 3657 括号序列
[问题描述] 我们用以下规则定义一个合法的括号序列: (1)空序列是合法的 (2)假如S是一个合法的序列,则 (S) 和[S]都是合法的 (3)假如A 和 B 都是合法的,那么AB和BA也是合法的 例 ...
- codevs——T3657 括号序列
http://codevs.cn/problem/3657/ 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description ...
- codevs 2058 括号序列
2058 括号序列 时间限制: 2 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 题目描述 Description 定义满足以下规则字符串为规则序列,否 ...
- 138.括号序列(区间型DP)
3657 括号序列 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 我们用以下规则定义一个合法的括号序列: ...
- 括号序列问题 uva 1626 poj 1141【区间dp】
首先考虑下面的问题:Code[VS] 3657 我们用以下规则定义一个合法的括号序列: (1)空序列是合法的 (2)假如S是一个合法的序列,则 (S) 和[S]都是合法的 (3)假如A 和 B 都是合 ...
- BZOJ4350: 括号序列再战猪猪侠
Description 括号序列与猪猪侠又大战了起来. 众所周知,括号序列是一个只有(和)组成的序列,我们称一个括号 序列S合法,当且仅当: 1.( )是一个合法的括号序列. 2.若A是合法的括号序列 ...
- DP专题——括号序列
毕竟是个渣,写完一遍之后又按LRJ的写了一遍,再写了一遍递归版,最终加上输出解部分 括号序列 定义如下规则序列(字符串): 空序列是规则序列: 如果S是规则序列,那么(S)和[S]也是规则序列: 如果 ...
- 递归:codevs 1251 括号
codevs 1251 括号 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 计算乘法时,我们可以添加括号,来改变相乘的顺 ...
- 【BZOJ】2209: [Jsoi2011]括号序列(splay)
http://www.lydsy.com/JudgeOnline/problem.php?id=2209 splay又犯逗........upd1那里的sum忘记赋值反............. 本题 ...
随机推荐
- 老生常谈:DEDECMS安全设置问题分享
Dedecms安全问题已经是老生常谈了.虽然无忧主机php虚拟主机安全性是很高的,但是黑客总是利用dedecms的漏洞进行注入.其实有些时候,是我们对dedecms的安全设置不到位导致的.今天无忧主机 ...
- Tomcat_启动参数设置
1.修改启动时内存参数.并指定JVM时区 (在windows server 2008 下时间少了8个小时): 在Tomcat上运行j2ee项目代码时,经常会出现内存溢出的情况,解决办法是在系统参数中增 ...
- linux 下vi /vim 中文汉字乱码解决
http://my.oschina.net/laserdance/blog/53474很多win下编译的配置文件(译码格式有utf8/gbk)上传到linux服务器上时打开汉字乱码 解决方法如下: 修 ...
- 哈希key个数
$length = keys %hashname; 则$length中得到的直接是该hash的key的个数.
- iOS10相册相机闪退bug
iOS10系统下调用系统相册.相机功能,遇到闪退的情况,描述如下: This app has crashed because it attempted to access privacy-sensit ...
- Mac下配置Apache,PHP
注:如果觉得终端下编辑太麻烦,也可以直接将文件拖出来手动编辑后在放回原文件夹替换即可 1.启用Apache: 在Mac下打开终端,输入“sudo apachectl start”(不包含引号,下同) ...
- node.js express安装问题
Windows下安装npm和express 1.如果不能在线安装,可以下载npm的zip解压到本地,然后把下面的bin目录加入到path中. 2.搞定npm后,执行了npm install expre ...
- .NET牛人应该知道些什么?
任何一个使用.NET的人 描述线程与进程的区别? 什么是Windows服务,它的生命周期与标准的EXE程序有什么不同 Windows上的单个进程所能访问的最大内存量是多少?它与系统的最大虚拟内存一样吗 ...
- RSAProtectedConfigurationProvider加密web.config
上一篇文章介绍了用 DataProtectionConfigurationProvider加密web.config文件的方法,不过他有一个缺陷,加密的文件只有在本机才能解密,如果有多台服务器的话,则需 ...
- Objective-C之成魔之路【5-选择结构】
郝萌主倾心贡献.尊重作者的劳动成果,请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠,支持郝萌主.捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 Objec ...