A - Watto and Mechanism(trie&&dfs)
胡乱分析
先创建字典树,然后每个rt对应的字母一个一个dfs枚举,最终得到答案
代码
1 |
|
B - Infinite Inversions
C - Pashmak and Parmida’s problem (逆序对)
胡乱分析
树状数组求逆序对,需要离散化一下这个式子然后倒着装,至于怎么装我也不知道题解怎么想出来的,不过确实挺巧妙的
代码
1 |
|
D - Balanced Lineup (RMQ)
胡乱分析
ST表和线段树都可过,ST表快一点
代码(ST表)
1 |
|
代码(线段树)
1 |
|
E - Snowflake Snow Snowflakes(哈希)
胡乱分析
这里用哈希,按照字符串模大质数加和的哈希,因为我们要把可能相同的放到一起去寻找,所以这样可以建立一个哈希表然后把可能相同的单独拿出来进行旋转比较的哈希,这里开了读入挂能够快一点读入,这题常数有点大
代码
1 |
|
F - 敌兵布阵 (树状数组)
胡乱分析
树状数组和线段树都可过,但是树状数组能够写少一点,对于这种单点修改的
1 |
|
G - Oulipo(KMP)
胡乱分析
裸题KMP
1 |
|
H - Power Strings(next数组应用)
胡乱分析
记住len|(len-next[len])时len/(len-next[len])能求最小长度循环串的循环长度
1 |
|
I - Period (next数组应用)
胡乱分析
同上一个题,不过就是最后求循环次数变成了边线性扫描边求
代码
1 |
|
J - Hat’s Words (trie)
胡乱分析
这题网上说最多每个单词只有20个字符所以map可以水过,但是正解还是trie
1 |
|
K - Black Box (堆)
胡乱分析
创建一个大根堆和一个小根堆,大根堆维护前k-1个的最小值
1 |
|
L - 搬果子 (堆)
胡乱分析
放进去自己排序这样快,注意直接排序求解会可能合并的时候合出来一个大的还需要再排序,所以直接用堆即可
1 |
|