您的位置:首页 > 其它

[luoguP1944] 最长括号匹配_NOI导刊2009提高(1)

2017-08-09 20:30 337 查看

传送门

 

非常傻的DP。

f[i]表示末尾是i的最长的字串

 

#include <cstdio>
#include <cstring>
#define N 1000001

int f
;
char s
;
int n, p, ans;

int main()
{
int i;
scanf("%s", s + 1);
n = strlen(s + 1);
for(i = 1; i <= n; i++)
{
if((s[i - 1 - f[i - 1]] == '(' && s[i] == ')') || (s[i - 1 - f[i - 1]] == '[' && s[i] == ']'))
{
f[i] = f[i - 1] + 2;
f[i] += f[i - f[i]];
}
if(ans < f[i]) ans = f[i], p = i;
}
for(i = p - f

+ 1; i <= p; i++) printf("%c", s[i]); return 0; }

[p]  

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: