专栏文章
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 上的某个节点 , 的子树内所有叶子节点所对应的字符串都有根节点到 这条路径所对应的前缀。
这个性质有什么用呢?它意味着,我们只需选择某个节点,就可以将其子树内的所有字符串全部归于一类。
这样,问题转化为,在所有节点中选出 个不同节点并且每个子树必须选一个(为了满足条件 )的方案数。这是个经典的树上背包问题,转移是显然的。
然后这题就做完了,实现有一些小细节会在代码中标注。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...