可憐不喜歡括號序列,但是她發現總是有人喜歡出括號序列的題
為了讓全世界都能感受到她的痛苦,她想要寫-個轉換器
它能把普通的小寫字串轉換成長度相同的合法的括號序列
在可憐的構思中,這樣的轉換器需要滿足如下兩個條件:
1. 結果的括號序列必須要是合法的,即左右括號必須要是相匹配的。
2. 對於一堆相匹配的左右括號,他們所在的位置原來的小寫字母必須相同。
舉例來說,對於字串aabaab,()(()) 就是乙個合法的答案,而()()()不滿足第二個條件,((())不滿足第乙個條件
可憐發現對於乙個小寫字串,有時候有很多滿足條件的括號序列,有些時候乙個都沒有
於是可憐給出了乙個小寫字串,她想讓你幫她算一下,有多少不同的子串可以轉化為滿足條件的括號序列
這題的思路有點神仙啊……
暴力方法是對於每個字母維護乙個棧
每次向後列舉,遇到不同的字母就入棧,如果字母和前乙個相同,雙雙彈出(雙雙:?)
但這樣的時間複雜度是 \(\theta\) 的,所以我們想想優化
其實我們只需要開乙個棧,每到乙個位置操作完以後,把當前棧的情況用hash記錄一下
如果有多個位置的hash值相同,就說明這幾個位置之間的字母被彈出了
說明以這幾個位置為端點,其中間的區間一定是合法,且連續的
然後我們把所有hash值排一下序,看每個連續的一段
如果一段的長度為len,它對答案的貢獻就是\(\dfrac\)
然後就結束了
20191006機房測試 礦石
眾所周知,九條可憐家裡有礦 你可以把可憐家的礦場抽象成一條數軸,可憐家有n種礦,第i種礦可以從 li,ri 中的任意位置開採得到 這個暑假,地理老師給了 可憐乙個列表 她的暑假作業就是收集齊這些礦石 為了保證可憐的安全,可憐的爸爸選定了m個相對安全的採礦點,第i個採礦點的座標為ai 可憐只能選擇其中...
機房 測試計畫
2 計畫 2.4測試2 識別符號 3 測試設計說明 3.2測試2 識別符號 4 評價準則 感謝閱讀 1.1編寫目的 測試計畫是描述將要進行測試活動的範圍 方法 資源和時間進度的文件。它確定了測試項,要測試的特徵 測試任務,誰來完成每一項任務及需要制定應急方案的所有風險等。目的就是盡可能多的找到系統中...
機房測試 11 6
電子科大的題,整體不錯,就是t3水了點。但是分3頁pdf是無法接受的 歡迎 ssw02的部落格 為什麼叫三教呢 ssw02還是個高中生,當然不知道了。讀入 第一行兩個非負整數 表示表示補給點個數和需要收集的體力數 第二行 n 個非負整數 第 i 個整數表示在不觸發 bug 的情況下補給點 提供的體力...