1. 程式人生 > >hihoCoder #1465 : 字尾自動機五·重複旋律8

hihoCoder #1465 : 字尾自動機五·重複旋律8

描述

小Hi平時的一大興趣愛好就是演奏鋼琴。我們知道一段音樂旋律可以被表示為一段數構成的數列。

小Hi發現旋律可以迴圈,每次把一段旋律裡面最前面一個音換到最後面就成為了原旋律的“迴圈相似旋律”,還可以對“迴圈相似旋律”進行相同的變換能繼續得到原串的“迴圈相似旋律”。

小Hi對此產生了濃厚的興趣,他有若干段旋律,和一部音樂作品。對於每一段旋律,他想知道有多少在音樂作品中的子串(重複便多次計)和該旋律是“迴圈相似旋律”。

輸入

第一行,一個由小寫字母構成的字串S,表示一部音樂作品。字串S長度不超過100000。

第二行,一個整數N,表示有N段旋律。接下來N行,每行包含一個由小寫字母構成的字串str,表示一段旋律。所有旋律的長度和不超過 100000。

輸出

輸出共N行,每行一個整數,表示答案。

相關推薦

hihoCoder #1465 : 字尾自動機·重複旋律8

描述 小Hi平時的一大興趣愛好就是演奏鋼琴。我們知道一段音樂旋律可以被表示為一段數構成的數列。 小Hi發現旋律可以迴圈,每次把一段旋律裡面最前面一個音換到最後面就成為了原旋律的“迴圈相似旋律”,還可以對“迴圈相似旋律”進行相同的變換能繼續得到原串的“迴圈相似旋律”。 小Hi對此產生了濃厚的興趣,他有

hihocoder 1449 : 字尾自動機三·重複旋律6(字尾自動機

#1449 : 字尾自動機三·重複旋律6 時間限制:15000ms 單點時限:3000ms 記憶體限制:512MB 描述 小Hi平時的一大興趣愛好就是演奏鋼琴。我們知道一個音樂旋律被表示為一段數構成的數列。 現在小Hi想知道一部作品中所有長度為K的旋律中出現次

hihocoder 1449 : 字尾自動機三·重複旋律6

Time Limit:15000ms Case Time Limit:3000ms Memory Limit:512MB 描述 小Hi平時的一大興趣愛好就是演奏鋼琴。我們知道一個音樂旋律被表示為一段數構成的數列。 現在小Hi想知道一部作品中所有長度為K的旋律中出現次

[Hihocoder](1445)字尾自動機二·重複旋律5 ----SAM構造

題目傳送門 做法: 我們知道SAM中 l[st] 陣列的意義是狀態st的最長子串的長度 從前一狀態到當前狀態的轉移所增加的子串數量: l[st] - l[slink[st]] AC程式碼: #inc

hihoCoder #1445 : 字尾自動機二·重複旋律5

#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define N 1000001 using namespace std; int

hihoCoder #1457 : 字尾自動機四·重複旋律7(字尾自動機 + 拓撲排序)

描述 小Hi平時的一大興趣愛好就是演奏鋼琴。我們知道一段音樂旋律可以被表示為一段數構成的數列。 神奇的是小Hi發現了一部名字叫《十進位制進行曲大全》的作品集,顧名思義,這部作品集裡有許多作品,但是所有的作品有一個共同特徵:只用了十個音符,所有的音符都表示成0-9的數字。 現在小Hi想知道這部作品中所

hihocoder 1445 : 字尾自動機二·重複旋律5(字尾自動機

給入門新手的模板題,套kuangbin大佬的模板。 當前節點的minlen就等於當前節點的fa節點的maxlen+1。 #include <bits/stdc++.h> using na

[Hihocoder](1415)字尾陣列三·重複旋律3 ---- 字尾陣列(最長公共子串)

題目傳送門 做法: 我們知道,字串中任意一個子串都是某個字尾的字首 我們也知道了Height陣列的含義是排名為i的字尾與排名i-1的字尾的最長公共字首,即就是最長公共子串。 現在題意讓我們找兩個串的最

hihocoder 後綴自動機·重復旋律8 求循環同構串出現的次數

變換 iostream hihocode 復雜 img 進行 ron default data- 描述 小Hi平時的一大興趣愛好就是演奏鋼琴。我們知道一段音樂旋律可以被表示為一段數構成的數列。 小Hi發現旋律可以循環,每次把一段旋律裏面最前面一個音換到最後面就成為了

hihocoder 127 字尾自動機一·基本概念

描述 小Hi:今天我們來學習一個強大的字串處理工具:字尾自動機(Suffix Automaton,簡稱SAM)。對於一個字串S,它對應的字尾自動機是一個最小的確定有限狀態自動機(DFA),接受且只接受S的字尾。 小Hi:比如對於字串S="aabbabd",它的字尾自動機是: 其中紅色狀態是終結狀態。你可

hihocoder 1465 循環串匹配問題(後綴自動機

神奇 說明 for 自動 () 狀態 出現 str pac 後綴自動機感覺好萬能 tries圖和ac自動機能做的,後綴自動機很多也都可以做 這裏的循環匹配則是後綴自動機能做的另一個神奇功能 循環匹配意思就是S是abba, T是abb 問‘abb‘, ‘bba‘,‘bab

hihocoder 後綴自動機二·重復旋律5

fin last ext gpo AI string else nbsp line 求不同子串個數 裸的後綴自動機 1 #include<cstring> 2 #include<cmath> 3 #include<

周第次課 8.10 shell特殊符號cut命令 8.11 sort_wc_uniq命令 8.1

學習 打卡8.10 shell特殊符號cut命令8.11 sort_wc_uniq命令8.12 tee_tr_split命令8.13 shell特殊符號下 shell特殊符號 *為通配符 代表所有 任意字符 ?為單一字符 為註釋字符(在配置文件裏面 或者是寫命令的時候在前面加# 這條命令就不會生效)

HihoCoder - 1513 bitset處理維偏序

時空復雜度 偏序 題目 get 時空 維護 hoc mat cin 題意:給出\(n<3e4\)個有序組\((a,b,c,d,e)\),求對第\(i\)個有序組有多少個\(j\)滿足\((a_j<a_i,b_j<b_i,c_j<c_i,d_j<

Codeforces Round #146 (Div. 1) C - Cyclical Quest 字尾自動機+最小迴圈節

#include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk make_pair #define PII pair<int, int> #defin

【BZOJ4566】找相同字元【字尾自動機

題意  給定兩個字串,求兩個字串相同子串的方案數。 分析  那麼將字串s1建SAM,然後對於s2的每個字首,都在SAM中找出來,並且計數就行。  我一開始的做法是,建一個u和len,順著s2跑SAM,當st[u].next[c]存在的時候,u=st[u].next[c],

MemSQL Start[c]UP 2.0 - Round 1 E - Three strings 廣義字尾自動機

E - Three strings 將三個串加進去,看每個節點在三個串中分別出現了多少次。 #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk mak

洛谷P3804 字尾自動機

題目描述 給定一個只包含小寫字母的字串SS, 請你求出 SS 的所有出現次數不為 11 的子串的出現次數乘上該子串長度的最大值。 輸入輸出格式 輸入格式:   一行一個僅包含小寫字母的字串SS   輸出格

BZOJ 3998: [TJOI2015]弦論 字尾自動機

3998: [TJOI2015]弦論 Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 4251  Solved: 1562 [Submit][Status][Di

【完全分散式Hadoop】()jdk1.8環境安裝

1.、下載jdk1.8   有些Centos系統可能已經有openjdk了,但是為了更清晰的瞭解我們的環境,我們一般採用二進位制包,進行環境配置   解除安裝系統自帶的openjdk rpm -e --nodeps `rpm -qa | grep java`   CDH官方ha