HDU4552 怪盜基德的挑戰書

2021-06-14 11:33:30 字數 1029 閱讀 8444

problem description

「在樹最美麗的那天,當時間老人再次把大鐘平均分開時,我會降臨在燈火之城的金字塔前,帶走那最珍貴的笑容。」這是怪盜基德盜取巴黎羅浮宮的《蒙娜麗莎的微笑》這幅畫時,挑戰書上的內容。

但這次,怪盜基德的挑戰書上出現了一串串小寫字母「aaab sdfeeddd...」。柯南以小學生的眼睛,超凡高中生的頭腦,快速統計各種字母頻率,字串長度,並結合挑戰書出現的時間等資訊,試圖分析怪盜基德的意圖。最後,他將線索鎖定在字串的迴圈次數上。並且進一步推理發現,從字串的第一位開始,到第i位,形成該字串的子串(c1, c2, c3 ... ci )。對於某一子串ci在該字串中出現的次數記為ki,則全部子串的迴圈次數總和aim = k1 + k2 + ... + ki + ... + kn,柯南發現,aim恰好對應乙個ascii碼!所以,只要把挑戰書上的字串轉變成數字,再找到對應的ascii碼,就可以破解這份挑戰書了!

現在,你的任務就是把字串轉變成對應數字,因為ascii碼以及擴充套件ascii碼全部只有256個,所以,本題只要把結果對256取餘即可。

input

輸入有多組測試資料;

每組測試資料只有乙個字串,由各種小寫字母組成,中間無空格。

字串的長度為l(0 < l <= 100000)。

output

請計算並輸出字串的aim值,每組資料輸出一行。

sample input

aaa

abab

sample output

66  

這段**用到了一點kmp的思路,關鍵是不能回歸,最多只能兩個迴圈,再多乙個很可能就超時了

#include #include int main()

{ char str[100005];

int ans;

while(gets(str))

{int len = strlen(str);

int i,j,k;

ans = 0;

for(i = 0;i

怪盜基德的挑戰書 HDU 4552

在樹最美麗的那天,當時間老人再次把大鐘平均分開時,我會降臨在燈火之城的金字塔前,帶走那最珍貴的笑容。這是怪盜基德盜取巴黎羅浮宮的 蒙娜麗莎的微笑 這幅畫時,挑戰書上的內容。但這次,怪盜基德的挑戰書上出現了一串串小寫字母 aaab sdfeeddd.柯南以小學生的眼睛,超凡高中生的頭腦,快速統計各種字...

HDU 4552 怪盜基德的挑戰書 字尾陣列

傳送門 hdu 4552 怪盜基德的挑戰書 題目分析 答案就是所有字尾和串s的lcp長度相加。字尾陣列搞定。如下 include include include using namespace std typedef long long ll define rep i a b for int i a...

NENU 怪盜基德的遊戲

description kid和新一開始玩乙個有趣的遊戲。遊戲規則是這樣的 在乙個n m棋盤中,某個位置有一顆棋子,並且有些位置是不能走的。現在兩個人輪流操作,每次可以將棋子向上下左右的格仔裡走一格,不能走出邊界。若一方不能行動,或者走到了已經走過的格仔,則算失敗。現在給出棋盤的初始狀態,柯南先行。...