hdu 6294 SA IS字尾陣列

2021-09-23 06:04:30 字數 511 閱讀 3700

【題意】給定字串,求 以第 i 個字元為始的字串 與 以第 i+1 個字元為始的字串 的大小關係

【分析】

因為字串長度是1e6,所以直接strcmp比的話是會超時的

然後就是寫寫發現一些東西啦

相鄰兩個串如果不相等的話直接比較輸出就好,如果相等的話,那麼就記錄一下當前位置一直到不相等,然後這段都輸出這個字元

其實還是挺簡單的一道題吧,但是我搞了好久(;′⌒`)

注意考慮一下所有字元都相等的情況,這樣的話最後要再輸出一下的(i=f:n-1)

【**】

#includeusing namespace std;

const int maxn=1e6+10;

char s[maxn];

int main()

else continue;

}for(int i=f;i");

printf("\n");

}return 0;

}

字尾陣列 HDU 4436

做法 首先應用求不同子串的演算法,自然想到字尾陣列,然後就是要統計以非 0 開始的字尾。考慮字尾 akak 1ak 2.an tmp 0 ak 0 tmp i tmp i 1 10 ai 0 sum i sum i 1 tmp i 那麼 以 am開始的字首和就是 sum n sum m 1 tmp ...

hdu 3518 字尾陣列

晚飯前寫的 一直wa,一直想不通,後來寫程式對拍了,一百組資料中錯了一組,然後還是想不通為什麼的,然後的然後看了別人的 然後瞬間知道自己為什麼wa!還是對字尾陣列了解的不夠,自己預設的是sa中排在前面的然後在字串陣列中下標也是在前面的,然後就沒有挨個比較相同長度中的取最大值和最小值,所以wa的可憐啊...

hdu 3518 字尾陣列

字尾陣列的題目主要是對三個陣列的利用 sa 記錄的是排名為i的字尾的首字母的下標 1 n rank 記錄的是首字母下標為i的字尾的排名 n height 記錄是j和j 1排序的最長公共字首 這道題求取的是不重疊的最少出現兩次的子串的個數 根據height j 陣列的性質,列舉長度然後按順序遍歷i,如...