题意:给定一个由'(', ')', '[', 和 ']' 组成的序列,找出以该序列为子序列的最短合法序列。
定义合法的括号序列如下:
1 空序列是一个合法的序列
2 如果S是合法的序列,则(S)和[S]也是合法的序列
3 如果A和B是合法的序列,则AB也是合法的序列
例如:下面的都是合法的括号序列
(), [], (()), ([]), ()[], ()[()]
下...
分类:
其他好文 时间:
2016-05-06 12:58:45
阅读次数:
125
题目链接:点击打开链接
思路:卡特兰数可以用来求括号序列的个数, 用了组合数学的知识。 该题其实就等价于求一个括号序列的个数, 因为满足任意时刻, 向右的步数大于等于向左的步数。 但是该题还有停止不动的情况, 所以我们不妨枚举向右的步数, 然后求出括号序列的组合数, 然后剩下的就是停止不动的步数, 用组合数插空即可。 另外, 除法取模要取逆元, 我们可以线性预处理出所有逆元。
细节参见代码:
...
分类:
其他好文 时间:
2016-04-29 19:51:51
阅读次数:
174
不知如何解决 1.感觉贪心或者动态规划,不知道如何解决 2.做过生成合法括号序列的题目,想到用DFS补成合法的括号,然而没有成功 ...
分类:
其他好文 时间:
2016-04-28 16:53:59
阅读次数:
362
题目链接:点击打开链接
思路:卡特兰数可以用来求括号序列的个数, 用了组合数学的知识。 该题其实就等价于求一个括号序列的个数, 因为满足任意时刻, 向右的步数大于等于向左的步数。 但是该题还有停止不动的情况, 所以我们不妨枚举向右的步数, 然后求出括号序列的组合数, 然后剩下的就是停止不动的步数, 用组合数插空即可。 另外, 除法取模要取逆元, 我们可以线性预处理出所有逆元。
细节参见代码:
...
分类:
其他好文 时间:
2016-04-26 21:52:31
阅读次数:
137
很恶心啊,一道水题改了半天,主要是各种细节没有注意到,包括左括号剩余时有可能会出错的情况,需要从后往前扫 贡献一组测试数据: ((()))())(())(( 答案:8 1 ...
分类:
其他好文 时间:
2016-04-26 15:45:34
阅读次数:
123
http://poj.org/problem?id=1068 这道题是一道模拟的题目 题目大意呢,p代表前面的'('的个数,而w代表这个括号所包括的括号的个数; 给你p,要你求w; 解题思路: 首先,你肯定要把p所对应的那一个括号序列还原出来,当然,你也没必要说用字符把()表示出来,完全就可以用0和 ...
分类:
其他好文 时间:
2016-04-18 21:59:22
阅读次数:
173
题目描述 二叉树被记录成文件的过程叫做二叉树的序列化。序列化的方法有很多,这里我们采用括号序列的方法将其序列化,所谓括号序列指的是对于一个节点生成一个括号,括号内是其子树的括号序列,其中左儿子(若存在)的括号在前,右儿子(若存在)的括号在后。对于给定的树,请设计高效的算法,将其序列化。 给定一个树的 ...
分类:
其他好文 时间:
2016-04-03 17:32:05
阅读次数:
131
描述 定义如下规则序列(字符串):1.空序列是规则序列;2.如果S是规则序列,那么(S)和[S]也是规则序列;3.如果A和B都是规则序列,那么AB也是规则序列。 例如,下面的字符串都是规则序列:(),[],(()),([]),()[],()[()] 而以下几个则不是:(,[,],)(,()),([( ...
分类:
其他好文 时间:
2016-04-03 00:06:36
阅读次数:
300
给一个括号序列,求有几个括号是匹配的。 dp[i][j]表示序列[i,j]的匹配数 dp[i][j]=dp[i+1][j-1]+2(括号i和括号j匹配) dp[i][j]=max(dp[i][k]+dp[k+1][j])(i<=k<j) 1 #include<cstdio> 2 #include<c
分类:
其他好文 时间:
2016-02-24 22:46:12
阅读次数:
167
20. Valid Parentheses Problem's Link ---------------------------------------------------------------------------- Mean: 给定一个括号序列,检查括号是否按顺序匹配. analyse:
分类:
其他好文 时间:
2016-02-17 17:18:59
阅读次数:
130