SlideShare a Scribd company logo

解説:吹奏楽部

F問題の解説です

解説:吹奏楽部

1 of 12
Download to read offline
解説:吹奏楽部
技術室奥プログラミングコンテスト 問題F
問題を整理してみる
• 分母が2~N+1の、既約分数の位置に奏者が立っている
• ある審査員の位置から、ある距離内にいる人間の数がわかっている
• その中で、最も遠い奏者の吹く楽器の番号が知りたい。
• →立っている位置を既約分数で表した時の分母が知りたい。
基本方針
• 審査員が見る距離を二分探索
• 舞台の端からある位置までにいる奏者の数を高速に求めたい
部分点解法
• ファレイ数列を使うと、分母が2~N+1までの既約分数を小さい順で
で列挙することが可能。既約分数の数はせいぜいN^2なので、
O(N^2)で求められる。
• 舞台の端からある位置までの奏者の人数を
二分探索を用いることでO(LogN)で求められる。
• よって、見る距離の二分探索にかかるのはO(logN*logN)
• 審査員全員分合わせて、O(Mlog^2N)
• 全体オーダーは、O(N^2+Mlog^2N)
満点解法
• 全ての既約分数を列挙する時間もメモリもない。
• 既約分数の個数を一斉に求める方法を考える
• 既約分数に限らなければ、ある範囲にある分数の個数を
O(N)で計算できる。
• それぞれの分母ごとに、範囲内の分数の個数にある係数をかけると
考えてみる。
満点解法
• 分母𝑖に対応するある係数𝑘𝑖を考える
• たとえば、N=5の場合において、
𝑘2 = −1, 𝑘3 = 0, 𝑘4 = 1, 𝑘5 = 1, 𝑘6 = 1 としてみる
• ここで、1/2以下の、分母N+1以下の分数の個数と、それに上の係数
をかけたものを考えてみる。
分母 2 3 4 5 6
個数 1 1 2 2 3
係数 -1 0 1 1 1
かけたもの -1 0 2 2 3
Ad

Recommended

More Related Content

More from 理玖 川崎

解説:デバッグ
解説:デバッグ解説:デバッグ
解説:デバッグ理玖 川崎
 
解説:エンブレム
解説:エンブレム解説:エンブレム
解説:エンブレム理玖 川崎
 
線形識別によるパターン認識
線形識別によるパターン認識線形識別によるパターン認識
線形識別によるパターン認識理玖 川崎
 
解説:サポーター
解説:サポーター解説:サポーター
解説:サポーター理玖 川崎
 
解説:おおきな数を作った
解説:おおきな数を作った解説:おおきな数を作った
解説:おおきな数を作った理玖 川崎
 

More from 理玖 川崎 (7)

解説:ボス
解説:ボス解説:ボス
解説:ボス
 
解説:デバッグ
解説:デバッグ解説:デバッグ
解説:デバッグ
 
解説:貢物
解説:貢物解説:貢物
解説:貢物
 
解説:エンブレム
解説:エンブレム解説:エンブレム
解説:エンブレム
 
線形識別によるパターン認識
線形識別によるパターン認識線形識別によるパターン認識
線形識別によるパターン認識
 
解説:サポーター
解説:サポーター解説:サポーター
解説:サポーター
 
解説:おおきな数を作った
解説:おおきな数を作った解説:おおきな数を作った
解説:おおきな数を作った
 

解説:吹奏楽部