日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

算法学习:后缀数组 height的求取

發布時間:2025/7/14 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法学习:后缀数组 height的求取 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【前置知識】

? 后綴數組

?


?

【定義】

【LCP】全名最長公共前綴,兩個后綴之間的最長前綴,以下我們定義

lcp ( i , j ) 的意義是后綴 i 和 j 的最長前綴

?

【z函數】 函數z [ i ] 表示的是,第 i 個后綴和字符串的最長前綴

?

?


?

?【解決問題】

這兩個算法都是在解決這個問題

即求后綴和字符串和后綴之間的最長公共前綴

?

但是有所不同的是,

后綴數組最終求出的是,字典序第 i 個后綴和第 i + 1 個后綴的最長公共前綴

z函數最終求出的是,第 i 個后綴和字符串的最長公共前綴

?

然后通過這個最長公共前綴求一些其他的值

?


?

【算法學習】

【后綴數組】

? 后綴數組能夠在 n 的時間內求出字典序第 i 和第 i - 1 個后綴的最長公共前綴

? 而這個函數通常被命名為 height?

? height [ i ] 的含義為 , 字典序第 i - 1個后綴和第 i 個后綴的最長公共前綴

? 有以下幾個性質進行求取:(s [ i ] 表示第 i 個后綴)

? 1.若 i 小于 j , LCP ( i , j )? = min { LCP ( k - 1 , k ), i + 1 <= k <= j }

? 可利用此項用 RMQ 求LCP

??2.定義 h [ i ] 為 :第 i 號開始的后綴和他字典序前面的后綴的LCP

? 即: h [ i ] = height [ rank [ i ] ]

? 于是有,對于 i > 1 且 rank [ i ]? > 1 有??

? ?h [ i ]? >? h [ i - 1 ] - 1 ;

? ?

? 證明如下 :

? 設 j 為 第 i - 1 號開始的后綴按排名的前面的那個后綴的開始的位置

??注意: j 不是第 i - 2號

??此時,第 j 個后綴和第 i - 1 個后綴的 LCP 在定義上為 height [ rank [ i - 1 ] ],即 h [ i - 1 ]

? 即我們要證明的右半部分的一部分

? 然后我們討論 j + 1 和 i (由得到 i - 1 + 1 ) 的關系:

? 第一種,當 j 和 i - 1 首字母不相等的情況,h [ i - 1 ] 為 0

? 那么顯然? h [ i ] > h [ i - 1 ] - 1

? 第二種,當 j 和 i - 1 首字母相等的情況,??

??那么顯然,j 和 i - 1 的 LCP 為 h [ i - 1 ] - 1

? 在后綴中,排名比 i 考前,和后綴 i LCP最長的,相似度最高的顯然是SA中離他最近的那個

? 即 SA [ rank [ i - 1] ]? - 1?

? 也就是 , h [ i ] >= h [ i - 1 ] - 1

? 證畢

??

??所以我們每次找最長前綴的時候,都可以從 h [ i - 1 ]? 開始檢索

? 可以類比 manacher

? 代碼如下:

void get_height(char *s)
{
  int k = 0;
  for (int i = 1; i <= n; i++)

  {
    if (k) k--;
    int j = SA[rak[i] - 1];
    while (i+k<=n && j+k<=n &&s[i + k] == s[j + k]) k++;
    height[rak[i]] = k;
  }
}

?

?


?

題目:

?

【SDOI 2008】 Sandy的卡片

?

?

?

??

?

轉載于:https://www.cnblogs.com/rentu/p/11338901.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的算法学习:后缀数组 height的求取的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91精品又粗又猛又爽 | 日韩中文字幕一区 | 国产精品二 | 亚洲综合无码一区二区 | 国产超碰人人 | 久操不卡 | 久色视频 | 好吊妞视频一区二区三区 | 国产精品成人一区二区三区 | 国产传媒中文字幕 | 性综艺节目av在线播放 | 国产欧美日韩一区二区三区 | 日本a∨视频 | 日韩不卡一区 | 国产乱论 | 日本91av| 欧美日本中文字幕 | 国产又粗又猛又黄又爽 | 网友自拍一区 | 韩国av在线播放 | 欧美亚洲在线 | 成人精品一区二区三区视频 | 波多野吉衣av在线 | 久久wwww| 成人片在线看 | 日韩 国产| 日韩免费在线观看视频 | 免费观看一级一片 | 免费国产羞羞网站视频 | 一个色av| 欧美成人精品激情在线视频 | 亚洲黄色片网站 | 男女扒开双腿猛进入爽爽免费 | 一级爱爱片 | 入禽太深免费视频 | 高跟91娇喘 | 中文字幕日韩欧美在线 | 福利国产视频 | 亚洲精品国产精品乱码不99热 | 国产网站一区 | 一级做a爱片久久 | 在线视频激情小说 | 久久久一级片 | 欧美大喷水吹潮合集在线观看 | 国产精品天干天干 | 午夜影院免费视频 | 国产成人亚洲综合 | 国产一区观看 | 国产亚洲天堂网 | 国产精品美女久久久久久久 | 国产精品亚洲综合 | 绿帽视频| 国产一区二区小说 | 欧美成人动态图 | 男女视频免费 | 国产美女精品久久 | 香蕉久久av一区二区三区 | a天堂v| 亚洲xx在线 | 成av人在线 | 奇米影视大全 | 男人和女人做爽爽视频 | 日韩欧美专区 | 欧美色图在线视频 | 国产精品久久久久不卡 | 欧美成人aaa片一区国产精品 | 青青草免费观看视频 | 亚洲天堂网站在线 | 91在线看片 | 国产免费成人在线视频 | 亚洲综合激情小说 | 麻豆午夜 | 免费精品在线 | 天天操天天操天天操天天操 | 欧美色图88 | 黄色片18| 伊人国产视频 | 国产字幕在线观看 | 在线观看国产网站 | 午夜激情福利在线 | 91看篇| 污站在线观看 | 欧美色图一区 | 亚洲福利视频网站 | 天堂网www.| 日韩一区二区a片免费观看 伊人网综合在线 | 日韩欧美精品在线播放 | 国产精品探花在线观看 | 欧美日韩在线播放视频 | 一集毛片 | 久久视频一区二区三区 | 午夜伦理视频 | 无码人妻丰满熟妇区五十路百度 | 久久久精品国产sm调教 | 好吊色这里只有精品 | 日本在线免费观看视频 | 色综合亚洲 | 精品人妻无码中文字幕18禁 | 日韩av网站在线播放 |