题目名称 2217. papertask
输入输出 papertask.in/out
难度等级 ★★★☆
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatar000 于2016-04-08加入
开放分组 全部用户
提交状态
分类标签
后缀自动机
分享题解
通过:19, 提交:34, 通过率:55.88%
Gravatarkito 100 0.353 s 27.49 MiB C++
Gravatarsxysxy 100 0.417 s 39.41 MiB C++
Gravatarsxysxy 100 0.433 s 39.41 MiB C++
GravatarDaD3zZ 100 0.476 s 29.40 MiB C++
GravatarAntiLeaf 100 0.505 s 62.29 MiB C++
GravatarAntiLeaf 100 0.520 s 58.48 MiB C++
Gravatarstdafx.h 100 0.601 s 58.47 MiB C++
Gravatarassassain 100 0.609 s 58.52 MiB C++
GravatarAntiLeaf 100 0.657 s 116.65 MiB C++
Gravatar_Horizon 100 0.659 s 54.67 MiB C++
关于 papertask 的近10条评论(全部评论)
回复 @FoolMike :
并不懂大神您Right[]数组的作用。。看您的代码好像只给它赋过值,但是没有访问过元素。
Gravatarkito
2017-03-30 20:48 3楼
为什么感觉我用的是完全不一样的思路
GravatarAntiLeaf
2017-03-29 08:41 2楼
好题!
先给括号配对,然后记录下每个右括号能接受的左括号位置(vector存储),SAM搞出来本质不同的字符串,之后根据Right集合已知,在vector上二分就好了。
GravatarFoolMike
2017-01-04 11:27 1楼

2217. papertask

★★★☆   输入文件:papertask.in   输出文件:papertask.out   简单对比
时间限制:1 s   内存限制:256 MiB

题目描述:

    给定只包含‘(’和‘)’的字符串,求出该字符串所有本质不同的合法子串。(位置不同子串相同算一种,合法子串是指括号序列是合法的,如“((()))”"()()()")

输入:

    一个整数n(n<=500000)表示字符串长度,以及一个该长度的字符串。

输出:

    输入字符串所有本质不同的合法子串个数。

样例输入

    10 

    ()()()()()

样例输出

    5