day 1
3题 kmp,思维
uvalive3026
明白了kmp算法
kmp的做错误匹配有2个关键点:
1.当前位置为i,找到和当前位置的元素相同的为d,如果i和d的元素相同,那么i的下一个元素就要和d的下一个元素比
if(all[i]==all[d])kmp[i+1]=d;
else kmp[i+1]=0;
2.那么要如何找到d呢,上次操作i-1时给出了kmp[i],那么就和指向的那个元素比,如果两者又不相同,那就和(指向的那个元素)指向的那个元素相比,即用一个循环,直到指向的那个元素指向第一个元素。
if(all[i]==all[d])kmp[i+1]=d;
else kmp[i+1]=0;
HDU 1711
制作匹配和匹配。
模版题
hdu5510
思维题,把问题想清楚
如果这么想:对每一个从答案ans+1那里扫一遍,会tle
看题解后,发现真的是要把一个问题想明白,
如果j是i的子串,j<i,那么判断i和k的时候,就只要判断 j 和 k 。
新学strstr