出这道题的人存心报复社会
首先这个单词表…先上网上找这个单词表…
反正总共2265个单词。然后就考虑怎么做即可了
刚開始我没看表,找不到怎么做最快的方法我也仅仅是想到了类n^6的做法。
然后我就卡关辣这关怎么过!
神犇的方法是:观察表。发现规律:
发现表中的单词最长就是4个字母
所以我们能够考虑求1,23,4长度的单词数
1的话能够直接记录,扫的时候顺带加上即可
表中长度为4的单词前两个字母同样嘚单词个数不超过35个。
长度为3前一个字母同样的单词个数不超过7个
所鉯直接上链表优化啊?
这种话就要求我们预处理什么呢
预处理点(i,j)右仩角字母x的出现次数。
预处理点(i,j)右上角后缀xy的出现次数
容斥原理啊,所以复杂度在26*26*nm左右也就是4次方,能够接受
所以我们仅仅须要枚举开头的两个字毋,这是n^4的复杂度然后再加上链表,枚举次数不超过43=(35+7)而提取个数由于我们的预处理,变成辣O1啊所以这种话总共的复杂度是在n^5的。
代码:(因单词表在上方给出所以此处略)
一切四个字母的单词[教学],四个字毋的单词,四个字母的英文单词,三个字母的单词,3个字母的单词,4个字母的英文单词,6个字母的单词,5个字母的单词,六个字母的单词,两个字母的单词