Submit Search
Upload
会津合宿2015Day3:F問題
•
0 likes
•
394 views
HCPC: 北海道大学競技プログラミングサークル
Follow
会津合宿2015Day3:F問題
Read less
Read more
Technology
Report
Share
Report
Share
1 of 10
Download now
Download to read offline
Recommended
Anagram
Anagram
oupc
MUJINプログラミングチャレンジ2016 解説
MUJINプログラミングチャレンジ2016 解説
AtCoder Inc.
RUPC2014_Day2_B
RUPC2014_Day2_B
s1190048
ACPC 2019 Day3 F: 部分文字列分解
ACPC 2019 Day3 F: 部分文字列分解
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 B: 括弧を語る数
RUPC 2019 Day3 B: 括弧を語る数
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 E: 往復文字列
RUPC 2019 Day3 E: 往復文字列
HCPC: 北海道大学競技プログラミングサークル
DDPC 2016 予選 解説
DDPC 2016 予選 解説
AtCoder Inc.
abc027
abc027
AtCoder Inc.
Recommended
Anagram
Anagram
oupc
MUJINプログラミングチャレンジ2016 解説
MUJINプログラミングチャレンジ2016 解説
AtCoder Inc.
RUPC2014_Day2_B
RUPC2014_Day2_B
s1190048
ACPC 2019 Day3 F: 部分文字列分解
ACPC 2019 Day3 F: 部分文字列分解
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 B: 括弧を語る数
RUPC 2019 Day3 B: 括弧を語る数
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 E: 往復文字列
RUPC 2019 Day3 E: 往復文字列
HCPC: 北海道大学競技プログラミングサークル
DDPC 2016 予選 解説
DDPC 2016 予選 解説
AtCoder Inc.
abc027
abc027
AtCoder Inc.
二分探索をはじめからていねいに
二分探索をはじめからていねいに
HCPC: 北海道大学競技プログラミングサークル
会津合宿2015Day3:C問題
会津合宿2015Day3:C問題
HCPC: 北海道大学競技プログラミングサークル
会津合宿2015Day3:G問題
会津合宿2015Day3:G問題
HCPC: 北海道大学競技プログラミングサークル
会津合宿2015Day3:B問題
会津合宿2015Day3:B問題
HCPC: 北海道大学競技プログラミングサークル
ACPC2016Day3:C問題
ACPC2016Day3:C問題
HCPC: 北海道大学競技プログラミングサークル
ACPC2016Day3:G問題
ACPC2016Day3:G問題
HCPC: 北海道大学競技プログラミングサークル
ACPC2016Day3:D問題
ACPC2016Day3:D問題
HCPC: 北海道大学競技プログラミングサークル
ACPC2016Day3:E問題
ACPC2016Day3:E問題
HCPC: 北海道大学競技プログラミングサークル
最短経路問題 & 最小全域木
最短経路問題 & 最小全域木
HCPC: 北海道大学競技プログラミングサークル
会津合宿2015Day3:E問題
会津合宿2015Day3:E問題
HCPC: 北海道大学競技プログラミングサークル
ACPC2016Day3:F問題
ACPC2016Day3:F問題
HCPC: 北海道大学競技プログラミングサークル
会津合宿2015Day3:D問題
会津合宿2015Day3:D問題
HCPC: 北海道大学競技プログラミングサークル
Introduction to programming
Introduction to programming
HCPC: 北海道大学競技プログラミングサークル
Topological sort
Topological sort
HCPC: 北海道大学競技プログラミングサークル
動的計画法を極める!
動的計画法を極める!
HCPC: 北海道大学競技プログラミングサークル
会津合宿2015Day3:A問題
会津合宿2015Day3:A問題
HCPC: 北海道大学競技プログラミングサークル
立命合宿2016Day3:H問題
立命合宿2016Day3:H問題
HCPC: 北海道大学競技プログラミングサークル
動的計画法
動的計画法
HCPC: 北海道大学競技プログラミングサークル
蟻本輪講 データ構造
蟻本輪講 データ構造
HCPC: 北海道大学競技プログラミングサークル
写像 12 相
写像 12 相
HCPC: 北海道大学競技プログラミングサークル
ACPC 2017 Day3 F: 掛け算は楽しい
ACPC 2017 Day3 F: 掛け算は楽しい
HCPC: 北海道大学競技プログラミングサークル
ACPC 2017 Day3 D: 優柔不断
ACPC 2017 Day3 D: 優柔不断
HCPC: 北海道大学競技プログラミングサークル
More Related Content
Viewers also liked
二分探索をはじめからていねいに
二分探索をはじめからていねいに
HCPC: 北海道大学競技プログラミングサークル
会津合宿2015Day3:C問題
会津合宿2015Day3:C問題
HCPC: 北海道大学競技プログラミングサークル
会津合宿2015Day3:G問題
会津合宿2015Day3:G問題
HCPC: 北海道大学競技プログラミングサークル
会津合宿2015Day3:B問題
会津合宿2015Day3:B問題
HCPC: 北海道大学競技プログラミングサークル
ACPC2016Day3:C問題
ACPC2016Day3:C問題
HCPC: 北海道大学競技プログラミングサークル
ACPC2016Day3:G問題
ACPC2016Day3:G問題
HCPC: 北海道大学競技プログラミングサークル
ACPC2016Day3:D問題
ACPC2016Day3:D問題
HCPC: 北海道大学競技プログラミングサークル
ACPC2016Day3:E問題
ACPC2016Day3:E問題
HCPC: 北海道大学競技プログラミングサークル
最短経路問題 & 最小全域木
最短経路問題 & 最小全域木
HCPC: 北海道大学競技プログラミングサークル
会津合宿2015Day3:E問題
会津合宿2015Day3:E問題
HCPC: 北海道大学競技プログラミングサークル
ACPC2016Day3:F問題
ACPC2016Day3:F問題
HCPC: 北海道大学競技プログラミングサークル
会津合宿2015Day3:D問題
会津合宿2015Day3:D問題
HCPC: 北海道大学競技プログラミングサークル
Introduction to programming
Introduction to programming
HCPC: 北海道大学競技プログラミングサークル
Topological sort
Topological sort
HCPC: 北海道大学競技プログラミングサークル
動的計画法を極める!
動的計画法を極める!
HCPC: 北海道大学競技プログラミングサークル
会津合宿2015Day3:A問題
会津合宿2015Day3:A問題
HCPC: 北海道大学競技プログラミングサークル
立命合宿2016Day3:H問題
立命合宿2016Day3:H問題
HCPC: 北海道大学競技プログラミングサークル
動的計画法
動的計画法
HCPC: 北海道大学競技プログラミングサークル
蟻本輪講 データ構造
蟻本輪講 データ構造
HCPC: 北海道大学競技プログラミングサークル
Viewers also liked
(19)
二分探索をはじめからていねいに
二分探索をはじめからていねいに
会津合宿2015Day3:C問題
会津合宿2015Day3:C問題
会津合宿2015Day3:G問題
会津合宿2015Day3:G問題
会津合宿2015Day3:B問題
会津合宿2015Day3:B問題
ACPC2016Day3:C問題
ACPC2016Day3:C問題
ACPC2016Day3:G問題
ACPC2016Day3:G問題
ACPC2016Day3:D問題
ACPC2016Day3:D問題
ACPC2016Day3:E問題
ACPC2016Day3:E問題
最短経路問題 & 最小全域木
最短経路問題 & 最小全域木
会津合宿2015Day3:E問題
会津合宿2015Day3:E問題
ACPC2016Day3:F問題
ACPC2016Day3:F問題
会津合宿2015Day3:D問題
会津合宿2015Day3:D問題
Introduction to programming
Introduction to programming
Topological sort
Topological sort
動的計画法を極める!
動的計画法を極める!
会津合宿2015Day3:A問題
会津合宿2015Day3:A問題
立命合宿2016Day3:H問題
立命合宿2016Day3:H問題
動的計画法
動的計画法
蟻本輪講 データ構造
蟻本輪講 データ構造
More from HCPC: 北海道大学競技プログラミングサークル
写像 12 相
写像 12 相
HCPC: 北海道大学競技プログラミングサークル
ACPC 2017 Day3 F: 掛け算は楽しい
ACPC 2017 Day3 F: 掛け算は楽しい
HCPC: 北海道大学競技プログラミングサークル
ACPC 2017 Day3 D: 優柔不断
ACPC 2017 Day3 D: 優柔不断
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 G: Restricted DFS
ACPC 2019 Day3 G: Restricted DFS
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 E: 総和の切り取り
ACPC 2019 Day3 E: 総和の切り取り
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 B: パフェ
ACPC 2019 Day3 B: パフェ
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 A: 間違い探し
ACPC 2019 Day3 A: 間違い探し
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day2 G: 木
HUPC 2019 Day2 G: 木
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 E: ジャム
HCPC: 北海道大学競技プログラミングサークル
HUPC 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 Rush
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day2 C: 串刺し
HUPC 2019 Day2 C: 串刺し
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 F: グリッドの番号
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 E: 最短経路の復元
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 D: 貪欲が最適?
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 C: 短絡評価
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 B: 自身の 2 倍
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 A: four tea
HUPC 2019 Day1 A: four tea
HCPC: 北海道大学競技プログラミングサークル
Convex Hull Trick
Convex Hull Trick
HCPC: 北海道大学競技プログラミングサークル
プログラミングコンテスト基礎テクニック
プログラミングコンテスト基礎テクニック
HCPC: 北海道大学競技プログラミングサークル
More from HCPC: 北海道大学競技プログラミングサークル
(20)
写像 12 相
写像 12 相
ACPC 2017 Day3 F: 掛け算は楽しい
ACPC 2017 Day3 F: 掛け算は楽しい
ACPC 2017 Day3 D: 優柔不断
ACPC 2017 Day3 D: 優柔不断
ACPC 2019 Day3 G: Restricted DFS
ACPC 2019 Day3 G: Restricted DFS
ACPC 2019 Day3 E: 総和の切り取り
ACPC 2019 Day3 E: 総和の切り取り
ACPC 2019 Day3 B: パフェ
ACPC 2019 Day3 B: パフェ
ACPC 2019 Day3 A: 間違い探し
ACPC 2019 Day3 A: 間違い探し
HUPC 2019 Day2 G: 木
HUPC 2019 Day2 G: 木
HUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 H: Revenge of UMG
HUPC 2019 Day2 H: Revenge of UMG
HUPC 2019 Day2 F: MOD Rush
HUPC 2019 Day2 F: MOD Rush
HUPC 2019 Day2 C: 串刺し
HUPC 2019 Day2 C: 串刺し
HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 A: four tea
HUPC 2019 Day1 A: four tea
Convex Hull Trick
Convex Hull Trick
プログラミングコンテスト基礎テクニック
プログラミングコンテスト基礎テクニック
会津合宿2015Day3:F問題
1.
会津合宿2015 Day3 F: みこみー文字列 原案・解説・問題文:井上 解答:井上・鈴木・田中
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的に厳しい
8.
余談 • ぶっちゃけナイーブO(N2)が速すぎたので |S|≤106になった • のでSA+LCP+RMQは厳しくなった •
個人的にはこっちもすんなり通したかった
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)
Download now