《Word Construction》题目分析
本题是一道比较基础的深度优先搜索题目。
猛一看这道题可能会感觉复杂度很高,暴搜会超时。因为有N个单词,每个单词都可能选或不选,一共有2^N中可能。N=40的时候这个数值非常大。
不过仔细分析题目中给出的单词就可以发现,除了by和my,所有单词都至少包含aeiou之中的一个字母。
由于题目要求选出的不同单词不能包含相同的字母,所以实际上我们最多选出6个单词:5个单词分别包含aeiou,再加上by或者my之中的一个。
这样以来复杂度就降为O(N^5),基本可以暴搜解决了。(实际上"不能包含相同的字母"这个剪枝条件很强,合法的组合远远小于O(N^5))。
当然我们还可以增加一些降低复杂度的优化。例如先对单词集合预处理一遍,剔除明显不够"优"的单词。例如,如果同时有单词i和it,那显然选it不如选i好,所以我们完全可以将it剔除出单词集合。
囧 突然想到了四天王有五人的梗