SlideShare a Scribd company logo
NPCA Programming Contest Alpha #02
             Div 1 F
はいれーつ・おぶ・かりびあん
    ~クエリの泉~
問題概要
●   初期値0の1次元配列
●   等間隔に同じ値を足したり引いたりする
    クエリを処理する
    – X[a], X[a + b], X[a + 2b] … X[a + pb]に
      一様に値を足す
間隔が大きい時は?
●   間隔が大きければ愚直にやっても問題ない
●   間隔が1とか10だったらやばい
●   なんかセグ木っぽい
セグ木
●   seg[i][j][k] := 間隔iのクエリでX[i * k + j]に足さ
    れた値
●   クエリで足される値はseg[i][j]の中で連続
    –   セグ木つかえる
●   クエリ3の時に呼び出しがiの個数分することに
    なる
●   i <= 80くらいで取れば良い
メモリやばい
●   80 * 100,000についてセグ木を作るとMLEする
    かもしれない
●   木の更新はクエリごとに一回だから遅延評価す
    れば良い
    –   JOIerならできるはず
●   想定オーダー:O(Q*N/80) = O(Q*80logN)
    –   だいたいO(10^7)
●   First AC: hogloid
●   AC 数: 6
●   Submission数: 38

More Related Content

What's hot

情報オリンピック夏合宿発表
情報オリンピック夏合宿発表情報オリンピック夏合宿発表
情報オリンピック夏合宿発表Kazuma Mikami
 
AtCoder Regular Contest 019 解説
AtCoder Regular Contest 019 解説AtCoder Regular Contest 019 解説
AtCoder Regular Contest 019 解説AtCoder Inc.
 
[ML論文読み会資料] Teaching Machines to Read and Comprehend
[ML論文読み会資料] Teaching Machines to Read and Comprehend[ML論文読み会資料] Teaching Machines to Read and Comprehend
[ML論文読み会資料] Teaching Machines to Read and ComprehendHayahide Yamagishi
 
RUPC2014_Day2_K
RUPC2014_Day2_KRUPC2014_Day2_K
RUPC2014_Day2_Ks1190048
 
Nielsen chuang-5.3.1
Nielsen chuang-5.3.1Nielsen chuang-5.3.1
Nielsen chuang-5.3.1GM3D
 
kagamicomput201702
kagamicomput201702kagamicomput201702
kagamicomput201702swkagami
 
AtCoder Beginner Contest 014 解説
AtCoder Beginner Contest 014 解説AtCoder Beginner Contest 014 解説
AtCoder Beginner Contest 014 解説AtCoder Inc.
 
AtCoder Regular Contest 026 解説
AtCoder Regular Contest 026 解説AtCoder Regular Contest 026 解説
AtCoder Regular Contest 026 解説AtCoder Inc.
 
CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説AtCoder Inc.
 
kagamicomput201701
kagamicomput201701kagamicomput201701
kagamicomput201701swkagami
 
AtCoder Beginner Contest 035 解説
AtCoder Beginner Contest 035 解説AtCoder Beginner Contest 035 解説
AtCoder Beginner Contest 035 解説AtCoder Inc.
 
Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2Kota Matsui
 
Infinite SVM - ICML 2011 読み会
Infinite SVM - ICML 2011 読み会Infinite SVM - ICML 2011 読み会
Infinite SVM - ICML 2011 読み会Shuyo Nakatani
 
AtCoder Regular Contest 046
AtCoder Regular Contest 046AtCoder Regular Contest 046
AtCoder Regular Contest 046AtCoder Inc.
 
人工無脳バトル 1st STEP 回答と解説
人工無脳バトル 1st STEP 回答と解説人工無脳バトル 1st STEP 回答と解説
人工無脳バトル 1st STEP 回答と解説JustSystems Corporation
 
AtCoder Beginner Contest 029 解説
AtCoder Beginner Contest 029 解説AtCoder Beginner Contest 029 解説
AtCoder Beginner Contest 029 解説AtCoder Inc.
 
プログラマ脳を鍛える会 Vol2α
プログラマ脳を鍛える会 Vol2αプログラマ脳を鍛える会 Vol2α
プログラマ脳を鍛える会 Vol2αhar hogefoo
 

What's hot (20)

ACPC 2017 Day3 D: 優柔不断
ACPC 2017 Day3 D: 優柔不断ACPC 2017 Day3 D: 優柔不断
ACPC 2017 Day3 D: 優柔不断
 
情報オリンピック夏合宿発表
情報オリンピック夏合宿発表情報オリンピック夏合宿発表
情報オリンピック夏合宿発表
 
abc031
abc031abc031
abc031
 
AtCoder Regular Contest 019 解説
AtCoder Regular Contest 019 解説AtCoder Regular Contest 019 解説
AtCoder Regular Contest 019 解説
 
[ML論文読み会資料] Teaching Machines to Read and Comprehend
[ML論文読み会資料] Teaching Machines to Read and Comprehend[ML論文読み会資料] Teaching Machines to Read and Comprehend
[ML論文読み会資料] Teaching Machines to Read and Comprehend
 
RUPC2014_Day2_K
RUPC2014_Day2_KRUPC2014_Day2_K
RUPC2014_Day2_K
 
Nielsen chuang-5.3.1
Nielsen chuang-5.3.1Nielsen chuang-5.3.1
Nielsen chuang-5.3.1
 
kagamicomput201702
kagamicomput201702kagamicomput201702
kagamicomput201702
 
AtCoder Beginner Contest 014 解説
AtCoder Beginner Contest 014 解説AtCoder Beginner Contest 014 解説
AtCoder Beginner Contest 014 解説
 
AtCoder Regular Contest 026 解説
AtCoder Regular Contest 026 解説AtCoder Regular Contest 026 解説
AtCoder Regular Contest 026 解説
 
CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説
 
kagamicomput201701
kagamicomput201701kagamicomput201701
kagamicomput201701
 
AtCoder Beginner Contest 035 解説
AtCoder Beginner Contest 035 解説AtCoder Beginner Contest 035 解説
AtCoder Beginner Contest 035 解説
 
Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2
 
Infinite SVM - ICML 2011 読み会
Infinite SVM - ICML 2011 読み会Infinite SVM - ICML 2011 読み会
Infinite SVM - ICML 2011 読み会
 
AtCoder Regular Contest 046
AtCoder Regular Contest 046AtCoder Regular Contest 046
AtCoder Regular Contest 046
 
人工無脳バトル 1st STEP 回答と解説
人工無脳バトル 1st STEP 回答と解説人工無脳バトル 1st STEP 回答と解説
人工無脳バトル 1st STEP 回答と解説
 
関数
関数関数
関数
 
AtCoder Beginner Contest 029 解説
AtCoder Beginner Contest 029 解説AtCoder Beginner Contest 029 解説
AtCoder Beginner Contest 029 解説
 
プログラマ脳を鍛える会 Vol2α
プログラマ脳を鍛える会 Vol2αプログラマ脳を鍛える会 Vol2α
プログラマ脳を鍛える会 Vol2α
 

Viewers also liked

Cをやりましょう
CをやりましょうCをやりましょう
CをやりましょうKen Ogura
 
かけざん
かけざんかけざん
かけざんKen Ogura
 
Deque with Haskel
Deque with HaskelDeque with Haskel
Deque with HaskelKen Ogura
 
2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方Tsuneo Yoshioka
 
Npc april fool2014
Npc april fool2014Npc april fool2014
Npc april fool2014Ken Ogura
 
Amortize analysis of Deque with 2 Stack
Amortize analysis of Deque with 2 StackAmortize analysis of Deque with 2 Stack
Amortize analysis of Deque with 2 StackKen Ogura
 
様々な全域木問題
様々な全域木問題様々な全域木問題
様々な全域木問題tmaehara
 
ハッキング実演
ハッキング実演ハッキング実演
ハッキング実演Ken Ogura
 

Viewers also liked (20)

April2013
April2013April2013
April2013
 
Trianguler
TriangulerTrianguler
Trianguler
 
Shio dtm
Shio dtmShio dtm
Shio dtm
 
Mage
MageMage
Mage
 
Donyoku
DonyokuDonyoku
Donyoku
 
Cをやりましょう
CをやりましょうCをやりましょう
Cをやりましょう
 
Jissou
JissouJissou
Jissou
 
April2013
April2013April2013
April2013
 
Divisor
DivisorDivisor
Divisor
 
かけざん
かけざんかけざん
かけざん
 
Deque with Haskel
Deque with HaskelDeque with Haskel
Deque with Haskel
 
2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方
 
Npc april fool2014
Npc april fool2014Npc april fool2014
Npc april fool2014
 
Amortize analysis of Deque with 2 Stack
Amortize analysis of Deque with 2 StackAmortize analysis of Deque with 2 Stack
Amortize analysis of Deque with 2 Stack
 
Imo
ImoImo
Imo
 
グラフと木
グラフと木グラフと木
グラフと木
 
計算量
計算量計算量
計算量
 
辺彩色
辺彩色辺彩色
辺彩色
 
様々な全域木問題
様々な全域木問題様々な全域木問題
様々な全域木問題
 
ハッキング実演
ハッキング実演ハッキング実演
ハッキング実演
 

More from Ken Ogura

More from Ken Ogura (13)

人間対Pc2
人間対Pc2人間対Pc2
人間対Pc2
 
PC解体
PC解体PC解体
PC解体
 
Moon
MoonMoon
Moon
 
Lunch
LunchLunch
Lunch
 
Homework
HomeworkHomework
Homework
 
Pool
PoolPool
Pool
 
Sns
SnsSns
Sns
 
Pencil
PencilPencil
Pencil
 
Spell check
Spell checkSpell check
Spell check
 
Black board
Black boardBlack board
Black board
 
Yarudake
YarudakeYarudake
Yarudake
 
Nazoki
NazokiNazoki
Nazoki
 
人材発掘うっはうは
人材発掘うっはうは人材発掘うっはうは
人材発掘うっはうは
 

Hairetu2

  • 1. NPCA Programming Contest Alpha #02 Div 1 F はいれーつ・おぶ・かりびあん ~クエリの泉~
  • 2. 問題概要 ● 初期値0の1次元配列 ● 等間隔に同じ値を足したり引いたりする クエリを処理する – X[a], X[a + b], X[a + 2b] … X[a + pb]に 一様に値を足す
  • 3. 間隔が大きい時は? ● 間隔が大きければ愚直にやっても問題ない ● 間隔が1とか10だったらやばい ● なんかセグ木っぽい
  • 4. セグ木 ● seg[i][j][k] := 間隔iのクエリでX[i * k + j]に足さ れた値 ● クエリで足される値はseg[i][j]の中で連続 – セグ木つかえる ● クエリ3の時に呼び出しがiの個数分することに なる ● i <= 80くらいで取れば良い
  • 5. メモリやばい ● 80 * 100,000についてセグ木を作るとMLEする かもしれない ● 木の更新はクエリごとに一回だから遅延評価す れば良い – JOIerならできるはず ● 想定オーダー:O(Q*N/80) = O(Q*80logN) – だいたいO(10^7)
  • 6. First AC: hogloid ● AC 数: 6 ● Submission数: 38