~~~~
果然用map暴力直接超時。原來要用hash,第一次寫hash,真是個好玩的東西。
注意:1.題目說文本是由字符組成的,所以要用ascll碼作為下標。
2.hash數組要開大點,否則RE。
#include#include #include #include #include #define N 16000000 using namespace std; int q[200]; int hash[N]; char str[N]; int main() { int n,m; while(~scanf(%d%d,&n,&m)) { int val=-1,tot=0; scanf(%s,str); int len=strlen(str); memset(q,0,sizeof(q)); memset(hash,0,sizeof(hash)); //以ascll碼為下標給每個字符賦值。 for(int i=0;i