给定 $n$ ,代表有 $n$ 种字符。再给出多个数组 $a$ ,记其长度为 $m$,$1\le a_i\le n$。每次随机写下出一个字符,求第一次写下这个数组(即写下的字符串后缀为该数组)期望要写多少个字符。
$1\le n,m\le 10^5$
给定 $n$ ,代表有 $n$ 种字符。再给出多个数组 $a$ ,记其长度为 $m$,$1\le a_i\le n$。每次随机写下出一个字符,求第一次写下这个数组(即写下的字符串后缀为该数组)期望要写多少个字符。
$1\le n,m\le 10^5$
本文阐述了一门基于 LLVM 的编程语言的实现过程,分析并解决了多个实现难点,基于实际问题在现有的知识上进行拓展并得出更好的解决方案和理论知识,进而对编译原理获得更加深入的认识。
给出一个 $n$ 个点的基环树森林(每一个点有一条无向边),让你求出所有基环树的直径(即一条不经过重复点的基环树上的最长路径)之和。
$2\le n\le 10^6$
一篇论文是由许多单词组成,但小张发现一个单词会在论文中出现很多次,问每个单词分别在论文中出现了多少次。
$1\le n \le 200$,单词总长度不超过 $10^6$
tar[x][c]
:SAM 转移
pre[x]
:常用名有 link
、fail
等 (反正就那个东西)
len[x]
:结点 x
代表的最长字符串的长度
广义后缀自动机(下文用广义 SAM 指代),即用多个字符串的后缀建出的一个后缀自动机,拥有和后缀自动机相似的性质。
有三种较流传广泛的广义后缀自动机写法:
最近几次交题由于是在 Ubuntu 上,所以只能把程序放到 ftp 上面去,并不怎么方便。于是乎把以前的破旧项目拖出来重写了一番。
一个偶然的机会让我发现自己平时一直用的快读模板甚至没有 scanf 快
给你 $n$ 张牌要求染成红、蓝、绿三种颜色(求染出 $S_r$ 张红色,$S_b$ 张蓝色,$S_g$ 张绿色),并给定了 $m$ 种洗牌方案,这些洗牌方案满足:
- 任意多次洗牌都可用这 $m$ 种洗牌法中的一种代替
- 对每种洗牌法,都存在一种洗牌法使得能回到原状态
问有多少种不同的染色方案。两种染色方法相同当且仅当其中一种可以通过任意的洗牌法(即可以使用多种洗牌法,而每种方法可以使用多次)洗成另一种。
$m\le 60$,$\max{S_r,S_b,S_g}\le20$
通过Xposed+Substrate实现非侵入性的Unity代码注入
别看标题这么厉害… 其实就是通过 hook 的方式实现在运行时替换 Unity 游戏中的 Assembly-CSharp.dll
来实现代码注入的功能。