Collapsing Strings
做这道题目的时候学CDQ和整体二分学成傻逼了是吧?我寻思着非要把一整个数组传进去操作,明明一个一个考虑不就好了真的烦躁
题外话,做这道题目的时候,探索出来一个东西,vector要放字符串的话,template可以写char *
最开始的想法是编写一个函数work(vector<char *> a,vector<char *> b)
,然后
考虑统计答案,我们枚举
但是这个代码非常难写,而且有vector递归,直接爆栈
然后看到了前缀后缀,想到了trie,故转换思路,把所有字符串倒序插入建立trie树,然后把所有字符串放到一个vector中传到递归函数里面类似地统计答案,仍然会MLE
然后想到给每个trie节点都开一个vector,放在全局变量里面,但是好像即使什么元素都没有放,仍然会MLE
好煞笔啊真的,为什么一定要一次性处理所有字符串呢?真的是CDQ和整体二分学傻了,一个一个处理统计答案就好了
另外做这道题目的时候,一定要慢慢地把细节想清楚,不然也会写很久
update 2024.7.14
重新做一遍这个题目,很快就做出来了,所以说脑子别晕就好了
当然也可以不推这个公式,在trie树上维护一些额外的信息就好了(只不过推了这个公式更容易看出前后缀所以要利用trie树)
但是可以好好想想为什么
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构