SlideShare a Scribd company logo
1 of 7
Download to read offline
B問題:周期数列
原案:鈴木
解答:井上、鈴木
解説:鈴木
問題概要
● 長さ N の数列 S が与えられる
● 数列が周期 t を持つ条件を以下で定義する
– 1 ≦ i ≦ N – t について Si
= Si+t
● 数列が周期 t を持ち N = kt と書けるならば k-part
であると言う
● k のうち最大のものを出力せよ
● 主な制約
– 1 ≦ N ≦ 100,000
サンプル
1 2 1 2 1 2 1 2 1 2 1 2
N = 12
t = 2, k = 6
t = 3, k = 4
t = 6, k = 2
t = 12, k = 1
想定解法
● N の約数だけを周期の候補として調べる
● 周期である数 t のうち最も小さいものを tmin
として N/tmin
が答えである
● 計算量
– 約数の個数 O(√N)
– 周期であるかの調査 O(N)
– 全体で O(N √N)
bool isPeriod(int t) {
for (int i = 0; i < n - t; ++i) {
if (S[i] != S[i + t]) return false;
}
return true;
}
約数の個数はO(√N)
● x が N の約数ならば N / x も N の約数
– x を 1 から √N まで試せば √N より大きい約数もすべて出る
約数 x 1 3 ... ... √N
約数(N / x) N N / 3 ... ... N / √N = √N
わざわざ約数列挙しなくても以下で十分
for (int t = 1; t <= N; ++t) {
if (N % t != 0) continue;
if (isPeriod(t)) {
cout << N / t << endl;
return 0;
}
}
writer解
● 井上(C++):31行
● 鈴木(C++):26行
提出状況
● First Acceptance
– オンライン:rickytheta (11 min)
– オンサイト:kyurame (4 min)
● 正答率
– 29/50 (58%)

More Related Content

What's hot (13)

Ikeph13 20150121
Ikeph13 20150121Ikeph13 20150121
Ikeph13 20150121
 
abc032
abc032abc032
abc032
 
AtCoder Regular Contest 043 解説
AtCoder Regular Contest 043 解説AtCoder Regular Contest 043 解説
AtCoder Regular Contest 043 解説
 
Aishima140714
Aishima140714Aishima140714
Aishima140714
 
Indeedなう B日程 解説
Indeedなう B日程 解説Indeedなう B日程 解説
Indeedなう B日程 解説
 
DDPC 2016 予選 解説
DDPC 2016 予選 解説DDPC 2016 予選 解説
DDPC 2016 予選 解説
 
Ppt kasawaki
Ppt kasawakiPpt kasawaki
Ppt kasawaki
 
最大流 (max flow)
最大流 (max flow)最大流 (max flow)
最大流 (max flow)
 
D : 解説
D : 解説D : 解説
D : 解説
 
Jokyonokai130531
Jokyonokai130531Jokyonokai130531
Jokyonokai130531
 
グラフネットワーク〜フロー&カット〜
グラフネットワーク〜フロー&カット〜グラフネットワーク〜フロー&カット〜
グラフネットワーク〜フロー&カット〜
 
Similarity functions in Lucene 4.0
Similarity functions in Lucene 4.0Similarity functions in Lucene 4.0
Similarity functions in Lucene 4.0
 
Gcd
GcdGcd
Gcd
 

Viewers also liked

Viewers also liked (19)

会津合宿2015Day3:C問題
会津合宿2015Day3:C問題会津合宿2015Day3:C問題
会津合宿2015Day3:C問題
 
会津合宿2015Day3:A問題
会津合宿2015Day3:A問題会津合宿2015Day3:A問題
会津合宿2015Day3:A問題
 
会津合宿2015Day3:D問題
会津合宿2015Day3:D問題会津合宿2015Day3:D問題
会津合宿2015Day3:D問題
 
立命合宿2016Day3:C問題
立命合宿2016Day3:C問題立命合宿2016Day3:C問題
立命合宿2016Day3:C問題
 
F editorial
F editorialF editorial
F editorial
 
立命合宿2016Day3:G問題
立命合宿2016Day3:G問題立命合宿2016Day3:G問題
立命合宿2016Day3:G問題
 
A editorial
A editorialA editorial
A editorial
 
会津合宿2015Day3:G問題
会津合宿2015Day3:G問題会津合宿2015Day3:G問題
会津合宿2015Day3:G問題
 
B editorial
B editorialB editorial
B editorial
 
会津合宿2015Day3:F問題
会津合宿2015Day3:F問題会津合宿2015Day3:F問題
会津合宿2015Day3:F問題
 
立命合宿2016Day3:D問題
立命合宿2016Day3:D問題立命合宿2016Day3:D問題
立命合宿2016Day3:D問題
 
初めてのSTL
初めてのSTL初めてのSTL
初めてのSTL
 
ソート
ソートソート
ソート
 
Topological sort
Topological sortTopological sort
Topological sort
 
会津合宿2015Day3:B問題
会津合宿2015Day3:B問題会津合宿2015Day3:B問題
会津合宿2015Day3:B問題
 
RMQ クエリ処理
RMQ クエリ処理RMQ クエリ処理
RMQ クエリ処理
 
グラフを扱おう:最短路問題
グラフを扱おう:最短路問題グラフを扱おう:最短路問題
グラフを扱おう:最短路問題
 
全域木いろいろ
全域木いろいろ全域木いろいろ
全域木いろいろ
 
二分探索をはじめからていねいに
二分探索をはじめからていねいに二分探索をはじめからていねいに
二分探索をはじめからていねいに
 

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

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

写像 12 相
写像 12 相写像 12 相
写像 12 相
 
ACPC 2017 Day3 F: 掛け算は楽しい
ACPC 2017 Day3 F: 掛け算は楽しいACPC 2017 Day3 F: 掛け算は楽しい
ACPC 2017 Day3 F: 掛け算は楽しい
 
ACPC 2017 Day3 D: 優柔不断
ACPC 2017 Day3 D: 優柔不断ACPC 2017 Day3 D: 優柔不断
ACPC 2017 Day3 D: 優柔不断
 
ACPC 2019 Day3 G: Restricted DFS
ACPC 2019 Day3 G: Restricted DFSACPC 2019 Day3 G: Restricted DFS
ACPC 2019 Day3 G: Restricted DFS
 
ACPC 2019 Day3 F: 部分文字列分解
ACPC 2019 Day3 F: 部分文字列分解ACPC 2019 Day3 F: 部分文字列分解
ACPC 2019 Day3 F: 部分文字列分解
 
ACPC 2019 Day3 E: 総和の切り取り
ACPC 2019 Day3 E: 総和の切り取りACPC 2019 Day3 E: 総和の切り取り
ACPC 2019 Day3 E: 総和の切り取り
 
ACPC 2019 Day3 B: パフェ
ACPC 2019 Day3 B: パフェACPC 2019 Day3 B: パフェ
ACPC 2019 Day3 B: パフェ
 
ACPC 2019 Day3 A: 間違い探し
ACPC 2019 Day3 A: 間違い探しACPC 2019 Day3 A: 間違い探し
ACPC 2019 Day3 A: 間違い探し
 
HUPC 2019 Day2 G: 木
HUPC 2019 Day2 G: 木HUPC 2019 Day2 G: 木
HUPC 2019 Day2 G: 木
 
HUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 E: ジャムHUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 E: ジャム
 
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
 
HUPC 2019 Day2 F: MOD Rush
HUPC 2019 Day2 F: MOD RushHUPC 2019 Day2 F: MOD Rush
HUPC 2019 Day2 F: MOD Rush
 
HUPC 2019 Day2 C: 串刺し
HUPC 2019 Day2 C: 串刺しHUPC 2019 Day2 C: 串刺し
HUPC 2019 Day2 C: 串刺し
 
HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 F: グリッドの番号HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 F: グリッドの番号
 
HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 E: 最短経路の復元HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 E: 最短経路の復元
 
HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 D: 貪欲が最適?HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 D: 貪欲が最適?
 
HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 C: 短絡評価HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 C: 短絡評価
 
HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 B: 自身の 2 倍HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 B: 自身の 2 倍
 
HUPC 2019 Day1 A: four tea
HUPC 2019 Day1 A: four teaHUPC 2019 Day1 A: four tea
HUPC 2019 Day1 A: four tea
 
Convex Hull Trick
Convex Hull TrickConvex Hull Trick
Convex Hull Trick
 

立命合宿2016Day3:B問題