1.题目描述:点击打开链接
2.解题思路:本题要求添加尽量少的括号,使得括号序列是一个正规序列。定义d(i,j)表示子串S[i...j]至少需要添加几个括号。根据题意,可知有两种转移方式:
(1)如果S形如(S‘)或[S'],则转移到d(S');
(2)如果S至少有两个字符,则可以分成AB,转移到d(A)+d(B);
边界是:S为空时,d(S)=0,S为单字符时,d(S)=1,。注意不...
分类:
其他好文 时间:
2015-02-14 17:33:09
阅读次数:
160
树上两点间距离转化为括号序列~
用线段树维护~...
分类:
其他好文 时间:
2015-02-04 09:31:32
阅读次数:
235
题意:
给出括号序列中每个右括号可能离对应左括号多远 求这个括号序列
思路:
记忆化搜索解决 用f[l][r]表示对于第l个左括号到第r个左括号区间最前面的左括号与其对应右括号的距离
状态只有n^2个 不用担心TLE
求f[l][r]的方法为 如果最前的左括号可以包住l+1~r个括号就尝试包起来 否则将l~r分治为l~x和x+1~r两个子问题
代码:
#include
#i...
分类:
其他好文 时间:
2015-01-29 14:40:38
阅读次数:
129
题意 判断输入的括号序列是否是配对的
栈的基础应用 栈顶元素与输入的字符匹配就出栈咯 注意括号序列可以为空
STL栈
#include
using namespace std;
int main()
{
int cas;
char c;
cin >> cas;
getchar();
while(cas--)
{
stac...
分类:
其他好文 时间:
2015-01-23 18:26:16
阅读次数:
192
原题链接:https://oj.leetcode.com/problems/valid-parentheses/
检查是否是有效的括号序列。这里的解法是维护一个栈,如果是左括号,则push到栈中,如果是右括号,则检查栈顶的符号,如果是对应的做括号,则将之弹出。否则,则直接返回false。当字符串扫描到尾时,则检查栈是否是空,如果是空,则说明所有的括号都match上了。
clas...
分类:
其他好文 时间:
2015-01-23 16:30:25
阅读次数:
178
括号配对问题时间限制:3000 ms | 内存限制:65535 KB 难度:3描述现在,有一行括号序列,请你检查这行括号是否配对。输入第一行输入一个数N(0 2 #include 3 char s[10000+10],p[10000]; 4 int judgement() 5 { 6 int...
分类:
其他好文 时间:
2015-01-16 20:45:08
阅读次数:
133
题意大概:输入一个包括“()”和“[ ]”的括号序列,判断是否合法。具体规则如下:
1.空串合法。
2.如果A和B都合法,那么AB也合法。
3.如果A合法,那么[A]和(A)都合法。
思路:
初始化一个栈,输入序列,然后进行扫描:
1.序列长度肯定是偶数(包括 0);
2.如果是“[”或者“(”则将其压进栈里面;
3.如果是“)”或者“]”,则根据当前栈顶的元素值进行判断,
...
分类:
其他好文 时间:
2015-01-15 23:54:51
阅读次数:
297
会做几道算几道吧……开个坑比较能激励自己 强迫症buff+拖延症buffrating神马的?不要在意嘛没写的都是坑~~~~~萌萌哒分割线~~~~~UR#11缩进优化2外星人3跳蚤国王下江南UR#21猪猪侠再战括号序列2跳蚤公路3树上GCDUR#31核聚变反应强度2铀仓库3链式反应UR#41元旦三侠的...
分类:
其他好文 时间:
2015-01-13 13:49:22
阅读次数:
204
题目大意:给出一个括号序列,问一段区间最少需要修改多少括号使得这一段括号变成一段完整的括号序列。
思路:题解见http://ydcydcy1.blog.163.com/blog/static/2160890402013116111134791/ OTZ ydc
维护起来稍微有些麻烦啊。。
CODE:
#include
#include
#include
#in...
分类:
其他好文 时间:
2015-01-08 21:45:30
阅读次数:
272
http://www.lydsy.com/JudgeOnline/problem.php?id=2209splay又犯逗。。。。。。。。upd1那里的sum忘记赋值反。。。。。。。。。。。。。本题好神。。首先发现将所有能匹配的消掉后一定是类似这样的))))((((,当然也有((((((这种情况还有本...
分类:
Web程序 时间:
2014-12-07 11:17:24
阅读次数:
650