摘要: 一道纠结了好久的题,主要是因为一开始思路就想错了,还按着错误的思路想了好久。。。 题目大意就是要找一个最短的字符串,包含所有的合法单词并且不包含所有的非法单词。 题目中给的非法单词非常多,但是合法单词很少,很容易想到用状态压缩来做。我一开始想到的是把每个合法单词当作一个点,然后用哈密顿回路来做,想了半天才发现这个思路明显是错误的。。。。。。 正确的做法是把所有可以作为合法单词结尾的点选出来,BFS出每两点之间的距离,每个点都会有一个压缩状态标记这个点可以作为哪几个单词的结尾,然后DP就可以了。 d[state][v]表示最后一步在v时到达state这个状态需要的最小长度,方程为d[... 阅读全文
posted @ 2012-08-12 02:20 Burn_E 阅读(538) 评论(0) 推荐(0)