dp+data structure(trie)