专栏文章

P12238

P12238题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mioin1ri
此快照首次捕获于
2025/12/02 19:49
3 个月前
此快照最后确认于
2025/12/02 19:49
3 个月前
查看原文
看到前缀,考虑使用 trie,先把所有字符串扔到里面去。
然后发现要求方案数,于是考虑 dp,在本题中自然想到在 trie 上 dp 了。
具体而言,我们观察到 trie 有一种很好的性质:对于 trie 上的某个节点 uuuu 的子树内所有叶子节点所对应的字符串都有根节点到 uu 这条路径所对应的前缀。
这个性质有什么用呢?它意味着,我们只需选择某个节点,就可以将其子树内的所有字符串全部归于一类。
这样,问题转化为,在所有节点中选出 kk 个不同节点并且每个子树必须选一个(为了满足条件 33)的方案数。这是个经典的树上背包问题,转移是显然的。
然后这题就做完了,实现有一些小细节会在代码中标注。

评论

0 条评论,欢迎与作者交流。

正在加载评论...