IDI Open 2016 H 字串模擬題

2022-08-18 10:06:10 字數 676 閱讀 1962

h - palindrome names

題意:給定乙個字串,每次可以向末尾新增乙個字元或者更改乙個字元。求使得字串為回文串(從前往後和從後往前讀一樣)所花費的最小步數。

題解: 看來需要多思考啊!題目並不難,應該是見得少。先寫個思路。

想讓它變成回文串,那麼可以向後面新增也可以更改其中乙個元素。可以這樣想,我在後面新增乙個字元,那麼我需要判斷新增後還有幾個不匹配,最小步數就是不匹配的個數+1。我要是就修改,最小步數就是不匹配的個數。 我需要從這兩種操作中選擇最小的就是答案。關鍵在於我新增乙個字元後判斷有幾個不匹配的。 既然回文,說明把它倒過來寫是一樣的,這時新增乙個字元看匹配個數就可以理解為把字元倒過來移動一位匹配個數,比如:

abcdefgded把他倒過來挪一位:

dedgfedcba

這樣做的意思就是我在字串後面新增一位,這一位必然要和前面第一位『a'相同,那麼剩下的再看有多少不匹配的加起來就是我這個操作需要的步數。我新增兩位就是:

abcdefgded

dedgfedcba

也就是字串前兩個'ab'一定匹配,再看剩下對應為不匹配的個數。以此類推。。。

其實,就像學長所說,最多操作步數就是字串長度len/2.。。。跟它比較就行了。

H 完美字串

約翰認為字串的完美度等於它裡面所有字母的完美度之和。每個字母的完美度可以由你來分配,不同字母的完美度不同,分別對應乙個1 26之間的整數。約翰不在乎字母大小寫 也就是說字母a和a的完美度相同 給定乙個字串,輸出它的最大可能的完美度。例如 dad,你可以將26分配給d,25分配給a,這樣整個字串完美度...

SDOI2016 模式字串

題目 bzoj第400題留念 這道題如果只有前三組資料的話還是很水的呀,我們完全可以點分 首先我們先倍長那個字串,直到這個字串的長度大於等於 n 我們把這個字串做一遍 hash 記下每乙個字首每乙個字尾的 hash 值是多少 之後套路點分,對於當前的分治重心找出乙個字首乙個字尾來拼接,由於我們倍長了...

問題 H 字串 旋轉單詞

題目描述 今天的英語課,王老師為了複習以前學過的單詞,提高學生的學習興趣,想出了乙個主意 讀入m組資料,其中每組資料有乙個單詞l 單詞長度 36個字元 和乙個整數n 1 n 36 從該單詞最末位開始逐位移到單詞的開頭,如果還沒達到n值,則再從末位開始移動,直到達n值為止,求移n位後的新單詞。你能程式...