题目大意:
给出一组合法的括号。
括号要么不涂颜色,要么就涂上红色或者绿色。
匹配的括号只能有一个有颜色。
两个相邻的括号不能有相同的颜色。
思路分析:
因为是一个合法的括号序列。
所以每个括号与之匹配的位置是一定的。
那么就可以将这个序列分成两个区间。 (L - match[L] ) (match[L]+1, R)
用递归先处理小区间,再转移大区间。
...
分类:
其他好文 时间:
2014-08-17 17:04:42
阅读次数:
206
题目大意:
给出一种不合法的括号序列,要求构造出一种合法的序列,使得填充的括号最少。
思路分析:
如果只要求输出最少的匹配括号的数量,那么就是简单的区间dp
dp[i][j]表示 i - j 之间已经合法了最少添加的括号数。
转移 就是 dp[i] [j] = min (dp[i+1][j]+1 , dp[ i+ 1] [ k -1 ] + dp[k+1] [j] (i k 位...
分类:
其他好文 时间:
2014-08-17 15:38:22
阅读次数:
222
括号配对问题
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述 现在,有一行括号序列,请你检查这行括号是否配对。
输入第一行输入一个数N(0输出每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No样例输入
3
[(])
(])
([[]()])
样例输出
No
No
Yes...
分类:
其他好文 时间:
2014-08-15 16:08:09
阅读次数:
174
比赛的时候想了一个自认为对的方法,WA到死,然后还一直敲下去,一直到晚上才想到反例找是否存在解比较好找,这种左右括号序列,把(当成1,把)当成-1,然后从前往后扫,+1或者-1 遇到?就当初(,然后如果扫到最后 中间没有出现负数说明左括号没问题然后同样的方法从后往前扫,判断右括号那里是不是有问题即可...
分类:
其他好文 时间:
2014-08-10 18:07:40
阅读次数:
205
括号配对问题时间限制:3000ms | 内存限制:65535KB难度:3描述现在,有一行括号序列,请你检查这行括号是否配对。输入第一行输入一个数N(0#includeusing namespace std;stacks;bool mate(char a,char b){return a=='('&&...
分类:
其他好文 时间:
2014-08-09 21:09:39
阅读次数:
324
题目描述:给你一个长度为N的,由’(‘和’)’组成的括号序列,你能找出这个序列中最长的合法括号子序列么?合法括号序列的含义便是,在这个序列中,所有的左括号都有唯一的右括号匹配;所有的右括号都有唯一的左括号匹配。例如:((()))()()便是一个长度为10的合法括号序列,而(()))( 则不是。需要你...
分类:
其他好文 时间:
2014-08-08 17:36:56
阅读次数:
231
括号配对问题
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述
现在,有一行括号序列,请你检查这行括号是否配对。
输入
第一行输入一个数N(0
输出
每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No
样例输入
3[(])(])([[]()])
样例输出
NoNoYes
程序代码:
利用字符数...
分类:
其他好文 时间:
2014-08-06 11:58:31
阅读次数:
209
HDU 4911 Inversion
题意:n个数字 通过k次相邻交换 使得逆序对数最少
思路:如果序列为 XXXABYYY 假设A和B位置互换 易知X和AB、Y和AB的逆序对数不变 换句话说一次交换最多使逆序对减少1 那么只需要求原逆序对数和k进行比较即可
HDU 4915 Parenthese sequence
题意:?可以代表(或) 那么输入的字符串能构造出几种合法的括号序列呢 输出无解、唯一解、多解
思路:这题是我YY的… 首先我们可以计算出(和)应该填几个 如果计算出?不满足我...
分类:
其他好文 时间:
2014-08-05 22:48:20
阅读次数:
289
括号配对问题时间限制:3000ms | 内存限制:65535KB难度:3描述现在,有一行括号序列,请你检查这行括号是否配对。输入第一行输入一个数N(0#include using namespace std;int main(){ int N; cin>>N; while(N--)...
分类:
其他好文 时间:
2014-08-02 17:58:53
阅读次数:
170
POJ 1141给一段括号序列,要求增加最少的括号,使之合法,输出序列。dp[i][j]表示使给定序列的i到j成为合法序列所需添加的最少括号数,dp[0][length-1]即是答案,转移的话,如果s[i]和s[j]可以匹配那么dp[i][j] = dp[i+1][j-1],否则就考虑在中间选择一个...
分类:
其他好文 时间:
2014-07-29 11:20:16
阅读次数:
343