狠狠撸

狠狠撸Share a Scribd company logo
会津合宿2015 Day3
F: みこみー文字列
原案?解説?問題文:井上
解答:井上?鈴木?田中
問題概要
? 文字列Sが与えられる
? S = ABABAとなるような非空文字列A, Bがある
か判定せよ
? あるなら|AB|が最小になるものを出力せよ
? 制約: 1 ≤ S ≤ 106
想定 TLE 解法: 全探索
? Aの長さを決め打ちする (1 ≤ |A| ≤ |S|/3)
? するとBの長さは一意 (B = (|S| - 3|A|) / 2)
? あとは以下が一致するか調べればよい
? S[0:A) と S[A+B:2A+B) と S[2A+2B:3A+B)
? S[A:A+B) と S[2A+B:2A+2B)
? O(N)通りについて、長さO(N)の文字列比較を行
うのでO(N2)?
→ N = 106なのでTLE
想定解法: ローリングハッシュ
? 部分文字列 s[l:r) に以下のようなハッシュ
値h(l,r)を割り当てる
? h(l,r) = Σl≤i≤r (int)si * p(r-i) mod M
? p, Mは互いに素 (基本p<Mで、素数とか)
? このハッシュ値が一致 ? 文字列が一致
想定解法: ローリングハッシュ
? h(l,r) = Σl≤i≤r (int)si * p(r-i) mod M
? このハッシュ値が一致 ? 文字列が一致
? つまり……以下を調べればよい
? h(0,A) = h(A+B,2A+B) = h(2A+2B,3A+2B)
? h(A,A+B) = h(2A+B,2A+2B)
? 数値なのでO(1)で判定できる
? ただし、ハッシュ一致 ? 文字列一致は言えない
? まともな p, M を使えば確率的にほとんど起こ
らない
想定解法: ローリングハッシュ
? h(l,r) = Σl≤i≤r (int)si * p(r-i) mod M
? けど h を計算するのに O(N) かかるのでは?
? h(l,r) = (h(0,r) - h(0,l) * p(r-l)) mod M
? h(0,i) = h(0,i-1) * p + (int)si?
と計算できるので、あらかじめ h(0,i) を
O(N)で計算しておけば h(l,r) の計算は
O(1)
? 全体で O(N)
別解: Suffix Array + LCP +
RMQ
? 接尾辞配列 (SA) を作り、SAで隣との共通部分接
頭辞 (LCP)の長さを記録した配列に対して区間最
小値クエリ (RMQ) を投げる
? S[l1,l1+k) と S[l2, l2+k) の文字列比較をすると
きは、l1とl2に該当するSAのインデックスを区間と
してRMQすると、答えがl1,l2の共通接頭辞の長さに
なる
? これがkより長ければS[l1,l1+k) = S[l2, l2+k)
? 計算量: O( SA構築 + NlogN )
? 蟻本のSA構築は O(Nlog2
N) なのでTLE的に厳しい
余談
? ぶっちゃけナイーブO(N2)が速すぎたので?
|S|≤106になった
? のでSA+LCP+RMQは厳しくなった
? 个人的にはこっちもすんなり通したかった
ジャッジ解
? 井上 (C++) 54行 1057B
? 鈴木 (C++) 38行 1035B
? 田中 (C++) 43行 1331B
回答状況
? Accept / Submit
? 11 / 30 (36.7%)
? First Acceptance
? onsite: syumi_plus (01:53)
? online: natsugiri (00:24)

More Related Content

Viewers also liked (19)

二分探索をはじめからていねいに
二分探索をはじめからていねいに二分探索をはじめからていねいに
二分探索をはじめからていねいに
HCPC: 北海道大学競技プログラミングサークル
?
会津合宿2015顿补测3:颁问题
会津合宿2015顿补测3:颁问题会津合宿2015顿补测3:颁问题
会津合宿2015顿补测3:颁问题
HCPC: 北海道大学競技プログラミングサークル
?
会津合宿2015顿补测3:骋问题
会津合宿2015顿补测3:骋问题会津合宿2015顿补测3:骋问题
会津合宿2015顿补测3:骋问题
HCPC: 北海道大学競技プログラミングサークル
?
会津合宿2015顿补测3:叠问题
会津合宿2015顿补测3:叠问题会津合宿2015顿补测3:叠问题
会津合宿2015顿补测3:叠问题
HCPC: 北海道大学競技プログラミングサークル
?
础颁笔颁2016顿补测3:颁问题
础颁笔颁2016顿补测3:颁问题础颁笔颁2016顿补测3:颁问题
础颁笔颁2016顿补测3:颁问题
HCPC: 北海道大学競技プログラミングサークル
?
础颁笔颁2016顿补测3:骋问题础颁笔颁2016顿补测3:骋问题
础颁笔颁2016顿补测3:骋问题
HCPC: 北海道大学競技プログラミングサークル
?
础颁笔颁2016顿补测3:顿问题础颁笔颁2016顿补测3:顿问题
础颁笔颁2016顿补测3:顿问题
HCPC: 北海道大学競技プログラミングサークル
?
础颁笔颁2016顿补测3:贰问题
础颁笔颁2016顿补测3:贰问题础颁笔颁2016顿补测3:贰问题
础颁笔颁2016顿补测3:贰问题
HCPC: 北海道大学競技プログラミングサークル
?
最短経路問題 & 最小全域木
最短経路問題 & 最小全域木最短経路問題 & 最小全域木
最短経路問題 & 最小全域木
HCPC: 北海道大学競技プログラミングサークル
?
会津合宿2015顿补测3:贰问题
会津合宿2015顿补测3:贰问题会津合宿2015顿补测3:贰问题
会津合宿2015顿补测3:贰问题
HCPC: 北海道大学競技プログラミングサークル
?
础颁笔颁2016顿补测3:贵问题
础颁笔颁2016顿补测3:贵问题础颁笔颁2016顿补测3:贵问题
础颁笔颁2016顿补测3:贵问题
HCPC: 北海道大学競技プログラミングサークル
?
会津合宿2015顿补测3:顿问题
会津合宿2015顿补测3:顿问题会津合宿2015顿补测3:顿问题
会津合宿2015顿补测3:顿问题
HCPC: 北海道大学競技プログラミングサークル
?
Introduction to programming
Introduction to programmingIntroduction to programming
Introduction to programming
HCPC: 北海道大学競技プログラミングサークル
?
Topological sort
Topological sortTopological sort
Topological sort
HCPC: 北海道大学競技プログラミングサークル
?
动的计画法を极める!
动的计画法を极める!动的计画法を极める!
动的计画法を极める!
HCPC: 北海道大学競技プログラミングサークル
?
会津合宿2015顿补测3:础问题
会津合宿2015顿补测3:础问题会津合宿2015顿补测3:础问题
会津合宿2015顿补测3:础问题
HCPC: 北海道大学競技プログラミングサークル
?
立命合宿2016顿补测3:贬问题
立命合宿2016顿补测3:贬问题立命合宿2016顿补测3:贬问题
立命合宿2016顿补测3:贬问题
HCPC: 北海道大学競技プログラミングサークル
?

More from HCPC: 北海道大学競技プログラミングサークル (20)

写像 12 相
写像 12 相写像 12 相
写像 12 相
HCPC: 北海道大学競技プログラミングサークル
?
ACPC 2017 Day3 F: 掛け算は楽しい
ACPC 2017 Day3 F: 掛け算は楽しいACPC 2017 Day3 F: 掛け算は楽しい
ACPC 2017 Day3 F: 掛け算は楽しい
HCPC: 北海道大学競技プログラミングサークル
?
ACPC 2017 Day3 D: 優柔不断
ACPC 2017 Day3 D: 優柔不断ACPC 2017 Day3 D: 優柔不断
ACPC 2017 Day3 D: 優柔不断
HCPC: 北海道大学競技プログラミングサークル
?
ACPC 2019 Day3 G: Restricted DFS
ACPC 2019 Day3 G: Restricted DFSACPC 2019 Day3 G: Restricted DFS
ACPC 2019 Day3 G: Restricted DFS
HCPC: 北海道大学競技プログラミングサークル
?
ACPC 2019 Day3 E: 総和の切り取り
ACPC 2019 Day3 E: 総和の切り取りACPC 2019 Day3 E: 総和の切り取り
ACPC 2019 Day3 E: 総和の切り取り
HCPC: 北海道大学競技プログラミングサークル
?
ACPC 2019 Day3 B: パフェ
ACPC 2019 Day3 B: パフェACPC 2019 Day3 B: パフェ
ACPC 2019 Day3 B: パフェ
HCPC: 北海道大学競技プログラミングサークル
?
ACPC 2019 Day3 A: 間違い探し
ACPC 2019 Day3 A: 間違い探しACPC 2019 Day3 A: 間違い探し
ACPC 2019 Day3 A: 間違い探し
HCPC: 北海道大学競技プログラミングサークル
?
HUPC 2019 Day2 G: 木
HUPC 2019 Day2 G: 木HUPC 2019 Day2 G: 木
HUPC 2019 Day2 G: 木
HCPC: 北海道大学競技プログラミングサークル
?
HUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 E: ジャムHUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 E: ジャム
HCPC: 北海道大学競技プログラミングサークル
?
HUPC 2019 Day2 H: Revenge of UMG
HUPC 2019 Day2 H: Revenge of UMGHUPC 2019 Day2 H: Revenge of UMG
HUPC 2019 Day2 H: Revenge of UMG
HCPC: 北海道大学競技プログラミングサークル
?
HUPC 2019 Day2 F: MOD Rush
HUPC 2019 Day2 F: MOD RushHUPC 2019 Day2 F: MOD Rush
HUPC 2019 Day2 F: MOD Rush
HCPC: 北海道大学競技プログラミングサークル
?
HUPC 2019 Day2 C: 串刺し
HUPC 2019 Day2 C: 串刺しHUPC 2019 Day2 C: 串刺し
HUPC 2019 Day2 C: 串刺し
HCPC: 北海道大学競技プログラミングサークル
?
HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 F: グリッドの番号HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 F: グリッドの番号
HCPC: 北海道大学競技プログラミングサークル
?
HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 E: 最短経路の復元HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 E: 最短経路の復元
HCPC: 北海道大学競技プログラミングサークル
?
HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 D: 貪欲が最適?HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 D: 貪欲が最適?
HCPC: 北海道大学競技プログラミングサークル
?
HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 C: 短絡評価HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 C: 短絡評価
HCPC: 北海道大学競技プログラミングサークル
?
HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 B: 自身の 2 倍HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 B: 自身の 2 倍
HCPC: 北海道大学競技プログラミングサークル
?
HUPC 2019 Day1 A: four tea
HUPC 2019 Day1 A: four teaHUPC 2019 Day1 A: four tea
HUPC 2019 Day1 A: four tea
HCPC: 北海道大学競技プログラミングサークル
?
Convex Hull Trick
Convex Hull TrickConvex Hull Trick
Convex Hull Trick
HCPC: 北海道大学競技プログラミングサークル
?
プログラミングコンテスト基础テクニック
プログラミングコンテスト基础テクニックプログラミングコンテスト基础テクニック
プログラミングコンテスト基础テクニック
HCPC: 北海道大学競技プログラミングサークル
?

Recently uploaded (11)

2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
sugiuralab
?
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
Matsushita Laboratory
?
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
?
LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3
LFDT Tokyo Meetup
?
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
Matsushita Laboratory
?
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
?
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
Matsushita Laboratory
?
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
sugiuralab
?
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
?
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
harmonylab
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
sugiuralab
?
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
Matsushita Laboratory
?
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
?
LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3
LFDT Tokyo Meetup
?
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
Matsushita Laboratory
?
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
?
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
Matsushita Laboratory
?
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
sugiuralab
?
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
?
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
harmonylab
?

会津合宿2015顿补测3:贵问题

  • 2. 問題概要 ? 文字列Sが与えられる ? S = ABABAとなるような非空文字列A, Bがある か判定せよ ? あるなら|AB|が最小になるものを出力せよ ? 制約: 1 ≤ S ≤ 106
  • 3. 想定 TLE 解法: 全探索 ? Aの長さを決め打ちする (1 ≤ |A| ≤ |S|/3) ? するとBの長さは一意 (B = (|S| - 3|A|) / 2) ? あとは以下が一致するか調べればよい ? S[0:A) と S[A+B:2A+B) と S[2A+2B:3A+B) ? S[A:A+B) と S[2A+B:2A+2B) ? O(N)通りについて、長さO(N)の文字列比較を行 うのでO(N2)? → N = 106なのでTLE
  • 4. 想定解法: ローリングハッシュ ? 部分文字列 s[l:r) に以下のようなハッシュ 値h(l,r)を割り当てる ? h(l,r) = Σl≤i≤r (int)si * p(r-i) mod M ? p, Mは互いに素 (基本p<Mで、素数とか) ? このハッシュ値が一致 ? 文字列が一致
  • 5. 想定解法: ローリングハッシュ ? h(l,r) = Σl≤i≤r (int)si * p(r-i) mod M ? このハッシュ値が一致 ? 文字列が一致 ? つまり……以下を調べればよい ? h(0,A) = h(A+B,2A+B) = h(2A+2B,3A+2B) ? h(A,A+B) = h(2A+B,2A+2B) ? 数値なのでO(1)で判定できる ? ただし、ハッシュ一致 ? 文字列一致は言えない ? まともな p, M を使えば確率的にほとんど起こ らない
  • 6. 想定解法: ローリングハッシュ ? h(l,r) = Σl≤i≤r (int)si * p(r-i) mod M ? けど h を計算するのに O(N) かかるのでは? ? h(l,r) = (h(0,r) - h(0,l) * p(r-l)) mod M ? h(0,i) = h(0,i-1) * p + (int)si? と計算できるので、あらかじめ h(0,i) を O(N)で計算しておけば h(l,r) の計算は O(1) ? 全体で O(N)
  • 7. 別解: Suffix Array + LCP + RMQ ? 接尾辞配列 (SA) を作り、SAで隣との共通部分接 頭辞 (LCP)の長さを記録した配列に対して区間最 小値クエリ (RMQ) を投げる ? S[l1,l1+k) と S[l2, l2+k) の文字列比較をすると きは、l1とl2に該当するSAのインデックスを区間と してRMQすると、答えがl1,l2の共通接頭辞の長さに なる ? これがkより長ければS[l1,l1+k) = S[l2, l2+k) ? 計算量: O( SA構築 + NlogN ) ? 蟻本のSA構築は O(Nlog2 N) なのでTLE的に厳しい
  • 9. ジャッジ解 ? 井上 (C++) 54行 1057B ? 鈴木 (C++) 38行 1035B ? 田中 (C++) 43行 1331B
  • 10. 回答状況 ? Accept / Submit ? 11 / 30 (36.7%) ? First Acceptance ? onsite: syumi_plus (01:53) ? online: natsugiri (00:24)