那么這題的思路如下:
1首先搜索順序是先O再C和W
2用字符串hash函數(shù)hash判重
3如果發(fā)現(xiàn)有兩個(gè)相鄰的編碼字符之間的字符串不是目標(biāo)串的字串的話,就剪枝
這樣可以把所有的數(shù)據(jù)都1s內(nèi)搞定
[此解法有一定的偶然性,原因是ELFHash造成的(當(dāng)我把hash表開到100000,而且模的那個(gè)數(shù)也是100000的時(shí)候,第8個(gè)數(shù)據(jù)過(guò)不去).所以下面的也可以說(shuō)是cheat過(guò)去的.正在看官方的,看懂后我會(huì)再發(fā)出來(lái),官方的也是用到hash,不過(guò)hash的時(shí)候都是模一個(gè)大素?cái)?shù)的,不然沖突的可能性會(huì)很大.還有第二種方法似乎沒(méi)用到hash,
現(xiàn)傳上官方報(bào)告]
代碼如下:
code