Warning: session_start(): open(/tmp/sess_dc8755f3013e4ac8f1d6d7608d0cabdd, O_RDWR) failed: No space left on device (28) in /data/wiki/inc/init.php on line 239

Warning: session_start(): Failed to read session data: files (path: ) in /data/wiki/inc/init.php on line 239

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/auth.php on line 430
Writing /data/wiki/data/cache/d/de2edb2fcb553ea79b79c722a4e13dbc.captchaip failed

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/actions.php on line 38

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/lib/tpl/dokuwiki/main.php on line 12
2020-2021:teams:alchemist:2020_nowcoder_multiuniversity_4 [CVBB ACM Team]

用户工具

站点工具


2020-2021:teams:alchemist:2020_nowcoder_multiuniversity_4

简况

比赛链接

AC 5题,Rank 18th

总结与反思

cmx

学了这么久广义后缀自动机还是不会C题(最后用其他方法勉强过了),思维还是需要训练。

lpy

xsy

题解

C. Count New String

先说正解。

首先这题等价于求$f(S,i,n)$这$n$个串的不同子串的个数。

假设当前字符位置是i,最近的大于等于它的字符位置是j,那么我们可以在j的基础上修改后缀自动机,插入的字符个数是$j-i$。所有的$j-i$相加的个数不会超过10N,这是因为,如果把j的条件弱化为等于$S_i$的位置,那么这样的累和也不会超过10N。这是一个非常重要的性质。赛场上直观感受过,但是没有求出其上界。

这样,我们相当于是在一棵节点数最多为10N的字典树上,走一遍广义后缀自动机。效率是$O(N*10*10)$。每插入一个节点,答案加上$mlen[cur] - mlen[lnk[cur]]$即可。

by cmx

补题

2020-2021/teams/alchemist/2020_nowcoder_multiuniversity_4.1595308177.txt.gz · 最后更改: 2020/07/21 13:09 由 maxdumbledore