| 题目名称 | 2223. [SDOI 2016 Round1] 生成魔咒 | 
|---|---|
| 输入输出 | menci_incantation.in/out | 
| 难度等级 | ★★★ | 
| 时间限制 | 1000 ms (1 s) | 
| 内存限制 | 128 MiB | 
| 测试数据 | 10 | 
| 题目来源 |  | 
| 开放分组 | 全部用户 | 
| 提交状态 | |
| 分类标签 | |
| 分享题解 | 
| 通过:141, 提交:264, 通过率:53.41% | ||||
|  | 100 | 0.122 s | 2.71 MiB | C++ | 
|  | 100 | 0.125 s | 0.00 MiB | C++ | 
|  | 100 | 0.165 s | 7.16 MiB | C++ | 
|  | 100 | 0.176 s | 3.48 MiB | C++ | 
|  | 100 | 0.182 s | 7.16 MiB | C++ | 
|  | 100 | 0.200 s | 4.51 MiB | C++ | 
|  | 100 | 0.206 s | 2.74 MiB | C++ | 
|  | 100 | 0.211 s | 2.80 MiB | C++ | 
|  | 100 | 0.212 s | 6.48 MiB | C++ | 
|  | 100 | 0.227 s | 2.10 MiB | C++ | 
| 关于 生成魔咒 的近10条评论(全部评论) | ||||
|---|---|---|---|---|
| 
第一道后缀自动机 
2017-05-21 20:48
20楼
 | ||||
| 
回复 @Menci : 我也写的SA... | ||||
|  | ||||
| 
回复 @Hzoi_可以的. : 你在自夸吗? 
2017-03-06 12:17
17楼
 | ||||
| 
没写long long 让我WA一发 
2017-02-28 17:15
16楼
 | ||||
| 
SA求出height数组,ST去维护区间极值,Set去记录前驱后继    | ||||
| 
不会用set的我只好写了棵01Trie代替平衡树,结果忘记把数组开大了。。 话说写SA+平衡树的好像真没几个人啊。 
2017-02-16 15:12
14楼
 | ||||
| 
SAM模版题 
2017-02-01 21:17
13楼
 | ||||
| 
好啦别管那个zz的后缀平衡树啦,补上此题的 SAM 做法,SAM 果然超好写~ | ||||
| 
SAM大法好,真是比SA简单多了 没开longlong致使WA一次,这个可以当SAM练手题 | ||||
menci_incantation.in  
输出文件:menci_incantation.out  
简单对比
魔咒串由许多魔咒字符组成,魔咒字符可以用数字表示。例如可以将魔咒字符 \( 1 \)、\( 2 \) 拼凑起来形成一个魔咒串 \( [1, 2] \)。
一个魔咒串 \( S \) 的非空字串被称为魔咒串 \( S \) 的生成魔咒。
例如 \( S = [1, 2, 1] \) 时,它的生成魔咒有 \( [1] \)、\( [2] \)、\( [1, 2] \)、\( [2, 1] \)、\( [1, 2, 1] \) 五种。\( S = [1, 1, 1] \) 时,它的生成魔咒有 \( [1] \)、\( [1, 1] \)、\( [1, 1, 1] \) 三种。
最初 \( S \) 为空串。共进行 \( n \) 次操作,每次操作是在 \( S \) 的结尾加入一个魔咒字符。每次操作后都需要求出,当前的魔咒串 \( S \) 共有多少种生成魔咒。
第一行一个整数 \( n \)。
第二行 \( n \) 个数,第 \( i \) 个数表示第 \( i \) 次操作加入的魔咒字符。
输出 \( n \) 行,每行一个数。第 \( i \) 行的数表示第 \( i \) 次操作后 \( S \) 的生成魔咒数量。
7
1 2 3 3 3 1 2
1
3
6
9
12
17
22
对于 \( 10\% \) 的数据,\( 1 \leq n \leq 10 \)。
对于 \( 30\% \) 的数据,\( 1 \leq n \leq 100 \)。
对于 \( 60\% \) 的数据,\( 1 \leq n \leq 1000 \)。
对于 \( 100\% \) 的数据,\( 1 \leq n \leq 100000 \)。
用来表示魔咒字符的数字 \( x \) 满足 \( 1 \leq x \leq 10 ^ 9 \)。
SDOI2016 Round1 Day2