KMP+TRIE int val[1000100][31],tot; int tr[1000100]; int fail[1000100]; struct AC_Trie{ void clean(){ tot=0; memset(val,0,sizeof(val)); memset(tr,0,sizeof(tr)); memset(fail,0,sizeof(fail)); } void build(){ queue<int> q; memset(fail,0,sizeof(fail)); w…