Soumettre la recherche
Mettre en ligne
AtCoder Regular Contest 049 解説
•
1 j'aime
•
9,672 vues
A
AtCoder Inc.
Suivre
AtCoder Regular Contest 049 解説
Lire moins
Lire la suite
Formation
Signaler
Partager
Signaler
Partager
1 sur 39
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
AtCoder Regular Contest 035 解説
AtCoder Regular Contest 035 解説
AtCoder Inc.
AtCoder Beginner Contest 021 解説
AtCoder Beginner Contest 021 解説
AtCoder Inc.
AtCoder Beginner Contest 010 解説
AtCoder Beginner Contest 010 解説
AtCoder Inc.
AtCoder Beginner Contest 024 解説
AtCoder Beginner Contest 024 解説
AtCoder Inc.
AtCoder Beginner Contest 002 解説
AtCoder Beginner Contest 002 解説
AtCoder Inc.
AtCoder Beginner Contest 025 解説
AtCoder Beginner Contest 025 解説
AtCoder Inc.
AtCoder Regular Contest 046
AtCoder Regular Contest 046
AtCoder Inc.
abc032
abc032
AtCoder Inc.
Recommandé
AtCoder Regular Contest 035 解説
AtCoder Regular Contest 035 解説
AtCoder Inc.
AtCoder Beginner Contest 021 解説
AtCoder Beginner Contest 021 解説
AtCoder Inc.
AtCoder Beginner Contest 010 解説
AtCoder Beginner Contest 010 解説
AtCoder Inc.
AtCoder Beginner Contest 024 解説
AtCoder Beginner Contest 024 解説
AtCoder Inc.
AtCoder Beginner Contest 002 解説
AtCoder Beginner Contest 002 解説
AtCoder Inc.
AtCoder Beginner Contest 025 解説
AtCoder Beginner Contest 025 解説
AtCoder Inc.
AtCoder Regular Contest 046
AtCoder Regular Contest 046
AtCoder Inc.
abc032
abc032
AtCoder Inc.
abc027
abc027
AtCoder Inc.
AtCoder Beginner Contest 005 解説
AtCoder Beginner Contest 005 解説
AtCoder Inc.
AtCoder Regular Contest 027 解説
AtCoder Regular Contest 027 解説
AtCoder Inc.
AtCoder Beginner Contest 020 解説
AtCoder Beginner Contest 020 解説
AtCoder Inc.
AtCoder Regular Contest 044 解説
AtCoder Regular Contest 044 解説
AtCoder Inc.
AtCoder Beginner Contest 006 解説
AtCoder Beginner Contest 006 解説
AtCoder Inc.
AtCoder Beginner Contest 018 解説
AtCoder Beginner Contest 018 解説
AtCoder Inc.
AtCoder Beginner Contest 017 解説
AtCoder Beginner Contest 017 解説
AtCoder Inc.
AtCoder Beginner Contest 013 解説
AtCoder Beginner Contest 013 解説
AtCoder Inc.
AtCoder Beginner Contest 028 解説
AtCoder Beginner Contest 028 解説
AtCoder Inc.
AtCoder Regular Contest 021 解説
AtCoder Regular Contest 021 解説
AtCoder Inc.
AtCoder Regular Contest 022 解説
AtCoder Regular Contest 022 解説
AtCoder Inc.
CODE FESTIVAL 予選B 解説
CODE FESTIVAL 予選B 解説
AtCoder Inc.
AtCoder Beginner Contest 011 解説
AtCoder Beginner Contest 011 解説
AtCoder Inc.
AtCoder Regular Contest 038 解説
AtCoder Regular Contest 038 解説
AtCoder Inc.
AtCoder Beginner Contest 029 解説
AtCoder Beginner Contest 029 解説
AtCoder Inc.
CODE FESTIVAL 2014 本選 解説
CODE FESTIVAL 2014 本選 解説
AtCoder Inc.
AtCoder Regular Contest 018 解説
AtCoder Regular Contest 018 解説
AtCoder Inc.
AtCoder Beginner Contest 016 解説
AtCoder Beginner Contest 016 解説
AtCoder Inc.
AtCoder Regular Contest 040 解説
AtCoder Regular Contest 040 解説
AtCoder Inc.
AtCoder Beginner Contest 034 解説
AtCoder Beginner Contest 034 解説
AtCoder Inc.
AtCoderに毎回参加したくなる仕組み
AtCoderに毎回参加したくなる仕組み
AtCoder Inc.
Contenu connexe
Tendances
abc027
abc027
AtCoder Inc.
AtCoder Beginner Contest 005 解説
AtCoder Beginner Contest 005 解説
AtCoder Inc.
AtCoder Regular Contest 027 解説
AtCoder Regular Contest 027 解説
AtCoder Inc.
AtCoder Beginner Contest 020 解説
AtCoder Beginner Contest 020 解説
AtCoder Inc.
AtCoder Regular Contest 044 解説
AtCoder Regular Contest 044 解説
AtCoder Inc.
AtCoder Beginner Contest 006 解説
AtCoder Beginner Contest 006 解説
AtCoder Inc.
AtCoder Beginner Contest 018 解説
AtCoder Beginner Contest 018 解説
AtCoder Inc.
AtCoder Beginner Contest 017 解説
AtCoder Beginner Contest 017 解説
AtCoder Inc.
AtCoder Beginner Contest 013 解説
AtCoder Beginner Contest 013 解説
AtCoder Inc.
AtCoder Beginner Contest 028 解説
AtCoder Beginner Contest 028 解説
AtCoder Inc.
AtCoder Regular Contest 021 解説
AtCoder Regular Contest 021 解説
AtCoder Inc.
AtCoder Regular Contest 022 解説
AtCoder Regular Contest 022 解説
AtCoder Inc.
CODE FESTIVAL 予選B 解説
CODE FESTIVAL 予選B 解説
AtCoder Inc.
AtCoder Beginner Contest 011 解説
AtCoder Beginner Contest 011 解説
AtCoder Inc.
AtCoder Regular Contest 038 解説
AtCoder Regular Contest 038 解説
AtCoder Inc.
AtCoder Beginner Contest 029 解説
AtCoder Beginner Contest 029 解説
AtCoder Inc.
CODE FESTIVAL 2014 本選 解説
CODE FESTIVAL 2014 本選 解説
AtCoder Inc.
AtCoder Regular Contest 018 解説
AtCoder Regular Contest 018 解説
AtCoder Inc.
AtCoder Beginner Contest 016 解説
AtCoder Beginner Contest 016 解説
AtCoder Inc.
AtCoder Regular Contest 040 解説
AtCoder Regular Contest 040 解説
AtCoder Inc.
Tendances
(20)
abc027
abc027
AtCoder Beginner Contest 005 解説
AtCoder Beginner Contest 005 解説
AtCoder Regular Contest 027 解説
AtCoder Regular Contest 027 解説
AtCoder Beginner Contest 020 解説
AtCoder Beginner Contest 020 解説
AtCoder Regular Contest 044 解説
AtCoder Regular Contest 044 解説
AtCoder Beginner Contest 006 解説
AtCoder Beginner Contest 006 解説
AtCoder Beginner Contest 018 解説
AtCoder Beginner Contest 018 解説
AtCoder Beginner Contest 017 解説
AtCoder Beginner Contest 017 解説
AtCoder Beginner Contest 013 解説
AtCoder Beginner Contest 013 解説
AtCoder Beginner Contest 028 解説
AtCoder Beginner Contest 028 解説
AtCoder Regular Contest 021 解説
AtCoder Regular Contest 021 解説
AtCoder Regular Contest 022 解説
AtCoder Regular Contest 022 解説
CODE FESTIVAL 予選B 解説
CODE FESTIVAL 予選B 解説
AtCoder Beginner Contest 011 解説
AtCoder Beginner Contest 011 解説
AtCoder Regular Contest 038 解説
AtCoder Regular Contest 038 解説
AtCoder Beginner Contest 029 解説
AtCoder Beginner Contest 029 解説
CODE FESTIVAL 2014 本選 解説
CODE FESTIVAL 2014 本選 解説
AtCoder Regular Contest 018 解説
AtCoder Regular Contest 018 解説
AtCoder Beginner Contest 016 解説
AtCoder Beginner Contest 016 解説
AtCoder Regular Contest 040 解説
AtCoder Regular Contest 040 解説
En vedette
AtCoder Beginner Contest 034 解説
AtCoder Beginner Contest 034 解説
AtCoder Inc.
AtCoderに毎回参加したくなる仕組み
AtCoderに毎回参加したくなる仕組み
AtCoder Inc.
素集合データ構造
素集合データ構造
京大 マイコンクラブ
幾何コンテスト2013
幾何コンテスト2013
Naoto Mizuno
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
AtCoder Inc.
TCO2017R1
TCO2017R1
AtCoder Inc.
Union find(素集合データ構造)
Union find(素集合データ構造)
AtCoder Inc.
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
Takuya Akiba
深さ優先探索による塗りつぶし
深さ優先探索による塗りつぶし
AtCoder Inc.
En vedette
(9)
AtCoder Beginner Contest 034 解説
AtCoder Beginner Contest 034 解説
AtCoderに毎回参加したくなる仕組み
AtCoderに毎回参加したくなる仕組み
素集合データ構造
素集合データ構造
幾何コンテスト2013
幾何コンテスト2013
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
TCO2017R1
TCO2017R1
Union find(素集合データ構造)
Union find(素集合データ構造)
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
深さ優先探索による塗りつぶし
深さ優先探索による塗りつぶし
Plus de AtCoder Inc.
Square869120 contest #2
Square869120 contest #2
AtCoder Inc.
AtCoder Beginner Contest 035 解説
AtCoder Beginner Contest 035 解説
AtCoder Inc.
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
AtCoder Inc.
Chokudai Contest 001
Chokudai Contest 001
AtCoder Inc.
AtCoder Regular Contest 048
AtCoder Regular Contest 048
AtCoder Inc.
MUJINプログラミングチャレンジ2016 解説
MUJINプログラミングチャレンジ2016 解説
AtCoder Inc.
AtCoder Beginner Contest 033 解説
AtCoder Beginner Contest 033 解説
AtCoder Inc.
DDPC 2016 予選 解説
DDPC 2016 予選 解説
AtCoder Inc.
arc047
arc047
AtCoder Inc.
CODE FESTIVAL 2015 沖縄ツアー 解説
CODE FESTIVAL 2015 沖縄ツアー 解説
AtCoder Inc.
abc031
abc031
AtCoder Inc.
CODE FESTIVAL 2015 解説
CODE FESTIVAL 2015 解説
AtCoder Inc.
CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説
AtCoder Inc.
AtCoder Beginner Contest 030 解説
AtCoder Beginner Contest 030 解説
AtCoder Inc.
AtCoder Regular Contest 045 解説
AtCoder Regular Contest 045 解説
AtCoder Inc.
CODE FESTIVAL 2015 予選A 解説
CODE FESTIVAL 2015 予選A 解説
AtCoder Inc.
天下一プログラマーコンテスト2015 予選B 解説
天下一プログラマーコンテスト2015 予選B 解説
AtCoder Inc.
AtCoder Regular Contest 043 解説
AtCoder Regular Contest 043 解説
AtCoder Inc.
天下一プログラマーコンテスト2015 予選A E問題 解説
天下一プログラマーコンテスト2015 予選A E問題 解説
AtCoder Inc.
AtCoder Regular Contest 042 解説
AtCoder Regular Contest 042 解説
AtCoder Inc.
Plus de AtCoder Inc.
(20)
Square869120 contest #2
Square869120 contest #2
AtCoder Beginner Contest 035 解説
AtCoder Beginner Contest 035 解説
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
Chokudai Contest 001
Chokudai Contest 001
AtCoder Regular Contest 048
AtCoder Regular Contest 048
MUJINプログラミングチャレンジ2016 解説
MUJINプログラミングチャレンジ2016 解説
AtCoder Beginner Contest 033 解説
AtCoder Beginner Contest 033 解説
DDPC 2016 予選 解説
DDPC 2016 予選 解説
arc047
arc047
CODE FESTIVAL 2015 沖縄ツアー 解説
CODE FESTIVAL 2015 沖縄ツアー 解説
abc031
abc031
CODE FESTIVAL 2015 解説
CODE FESTIVAL 2015 解説
CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説
AtCoder Beginner Contest 030 解説
AtCoder Beginner Contest 030 解説
AtCoder Regular Contest 045 解説
AtCoder Regular Contest 045 解説
CODE FESTIVAL 2015 予選A 解説
CODE FESTIVAL 2015 予選A 解説
天下一プログラマーコンテスト2015 予選B 解説
天下一プログラマーコンテスト2015 予選B 解説
AtCoder Regular Contest 043 解説
AtCoder Regular Contest 043 解説
天下一プログラマーコンテスト2015 予選A E問題 解説
天下一プログラマーコンテスト2015 予選A E問題 解説
AtCoder Regular Contest 042 解説
AtCoder Regular Contest 042 解説
Dernier
What I did before opening my business..pdf
What I did before opening my business..pdf
oganekyokoi
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdf
oganekyokoi
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
RodolfFernandez1
International Politics I - Lecture 1
International Politics I - Lecture 1
Toru Oga
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdf
oganekyokoi
Registration of travel agents - 'Explanation of the registration system under...
Registration of travel agents - 'Explanation of the registration system under...
oganekyokoi
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
yutakashikano1984
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要 パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要 パワーポイント
shu1108hina1020
Dernier
(8)
What I did before opening my business..pdf
What I did before opening my business..pdf
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdf
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
KARAPATANG PANTAO.pptxhrhrhrhrhrhrhrhrhr
International Politics I - Lecture 1
International Politics I - Lecture 1
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdf
Registration of travel agents - 'Explanation of the registration system under...
Registration of travel agents - 'Explanation of the registration system under...
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
レポートの書き方講座 [大学生初年次向けに対する講義資料] Lecture on how to write a report [lecture mater...
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要 パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要 パワーポイント
AtCoder Regular Contest 049 解説
1.
AtCoder Regular Contest
049 解説 AtCoder株式会社 3/19/15
2.
A: 強調 森田 晃平
3.
問題概要 • 文字列と、4つの挿入箇所が与えられる • 4つの箇所に
を挿入して出力する
4.
解法1 • 文字列に対して以下の動作を行えば良い • A文字目の後ろに
を挿入 • B+1文字目の後ろに を挿入 • C+2文字目の後ろに を挿入 • D+3文字目の後ろに を挿入 • 文字列の途中に文字を入れる機能は、大体の言語にあるはずです • 例えばc++なら、stringにはinsertという関数があります
5.
解法2 • 逆から入れていくともう少し簡単になります • D文字目の後ろに
を挿入 • C文字目の後ろに を挿入 • B文字目の後ろに を挿入 • A文字目の後ろに を挿入
6.
B - 高橋ノルム君 三上和馬(@kyuridenamida)
7.
問題概要 • 二次元平面上の点がN個与えられます。各点には係 数ciが定まっています。 • 適切に点(X,Y)を選んで ci*max(¦xiX¦,¦yiY¦)の最大値を最小化 •
1<=N<=1000 誤差はあまり気にしないでよさそうな制約
8.
部分点 • すべてのiに対してci=1という制約の下では (X,Y)=(xの最大値と最小値の平均,yの最大値と最小値の平均) とすれば最適になる. • 30点得られます.
9.
考察 • 最大値を最小化 ↑二分探索を考えるのが定石 • コストtの最大値を固定してみよう!
10.
考察 • コストtを固定すると以下のような判定問題ができる 「点(xi,yi)を中心とした長さ2t/ciの正方形がたくさ んあります.全ての正方形の共通部分はあります か?」 • これはx,y軸独立に区間集合の共通部分を求め,どちらにも共通 部分が存在していれば長方形としての共通部分があると言える.
11.
区間集合の共通部分 • 区間[L1,R1],[L2,R2],...,[LN,RN]があったときに • その共通部分は,存在するならば [max(L1,L2,…,LN),min(R1,R2,…,RN)] で表される. •
左の値<=右の値なら共通部分が存在する • 右の値>左の値なら共通部分は存在しない.
12.
解法 • 考察で作った判定関数に単調性があり,共通部分が存 在するギリギリのコストtを二分探索で見つければそれ が答え • 判定関数の時間計算量はO(N) •
二分探索は64回くらい反復しとけば安心.
13.
C - ぬりまーす 三上和馬(@kyuridenamida)
14.
問題概要 • N頂点のグラフに色を塗る。ただし以下のタイプの 制約がそれぞれA個,B個ずつある。塗れる頂点の最 大数を求めよ。 タイプ1.ある頂点 x
に色を塗るとき、既に頂点 y に色が塗られてなければならない。 タイプ2.ある頂点 u に色を塗るとき、既に頂点 v に色が塗られていてはいけない。 • 1 N,A 100,1 B 10
15.
考察 • タイプ1の制約のみしかない場合を考え、制約を辺(y→x)として グラフにしてみよう。実はこれが解ければほぼ解けている。 • 有向閉路がない場合なら、適切な順番で塗れば全て塗ることが できる。ある場合はそこから伸びている辺は塗れない。 赤色の部分は塗れた頂点
16.
考察 • タイプ1の制約のみしかない場合でも、どうやって塗るか考え なければならない • 今回は次のうちどちらの方法でも通るので好きな方で良い •
頂点の色変化がなくなる(=収束する)までループを回し続ける 方法 時間計算量はO(N(N+辺の数)) • キューを使って、入次数=(入ってくる頂点で色を塗られている 頂点数)になった瞬間のみ頂点をpushするような幅優先探索 時間計算量はO(N+辺の数)
17.
元の制約に対する解法 • タイプ2の制約「ある頂点 u
に色を塗るとき、既に頂点 v に色が 塗られていてはいけない。」を考える • タイプ2の制約は各々以下のように言い換えることができる 「頂点uを決して塗らないか、頂点vを塗るためには頂点uを塗ら ないといけない」 • つまり、各タイプ2の制約について、2通りの可能性を網羅すれば 十分。後者はタイプ1の制約とみなすことができる • 全ての可能性を全列挙しても2^B通りで、Bは小さいので間に合う • 全体の時間計算量はO(2^B * (先ほど述べた塗るための計算量))
18.
言い換え例 • 青辺はタイプ2の制約の辺(v→u) ❌
19.
D: すわっぷしまーす 森田 晃平
20.
問題概要 • 完全二分木が与えられる、葉には1,2,...と数が書かれ ている • ので、以下のクエリを処理 •
左からk番目の葉の値を求める • swap(a), swap(a+1), …, swap(b)を行う • ただし、swap(x)とは位置xの頂点の左右の子をswap
21.
位置 1 2 3 4 5
6 7
22.
swapクエリ • クエリ2は、範囲swapのようなものだが、そのま まではどうしようも無いので、木の高さごとにバラ す • これで、木の特定の高さの範囲swapを考えればよ くなった
23.
例 1 2 3 4 5
6 7 これにswap(1), swap(2), …, swap(5)を行うとする
24.
例 1 2 3 4 5
6 7 これにswap(1), swap(2), …, swap(5)を行うとする
25.
1 2 3 4 5
6 7 • これを、 • swap(1)(高さ1) • swap(2), swap(3)(高さ2) • swap(4), swap(5)(高さ3) • の3種類に分割する
26.
swapクエリ • これで分割したクエリを、さらに分割する • SegmentTreeに対する区間クエリ •
木について、 高さiの頂点を全てswapする という クエリになるように分割したい
27.
• たとえば、RMQ(Range minimum
Query)を SegTreeでやるとどうなるか? • [a, b]の最小値というクエリを、O(logn)個の 木の 全ての葉の値の最小値 というものに分割している • 今回は、i段目の[a,b]のswapというクエリなので、 O(logn)個の 木のi段目の全ての頂点をswap とい うクエリに分割できる
28.
例 1 2 3 4 5
6 7 これにswap(4), swap(5), swap(6)を行うとする
29.
例 1 2 3 4 5
6 7 これは、位置2, 位置6の頂点に対して、 高さ3の頂点を全てswap というクエリになる
30.
i段目を全てswap • i段目を全てswap というクエリになると何が嬉し い? •
とりあえず、位置1(木の根)に対して i段目を全て swap というクエリだけがくると考える • こうすると、 i段目を全てswap → j段目を全て swap をしても、 j段目を全てswap → i段目を全て swap しても、できる木は変わらないことがわかる
31.
例 1 2 3
4 5 6 7 高さ2をswap → 高さ3をswap 8
32.
例 3 4 1
2 7 8 5 高さ2をswap → 高さ3をswap 6
33.
例 4 3 2
1 8 7 6 高さ2をswap → 高さ3をswap 5
34.
例 1 2 3
4 5 6 7 高さ3をswap → 高さ2をswap 8
35.
例 2 1 4
3 6 5 8 高さ3をswap → 高さ2をswap 7
36.
例 4 3 2
1 8 7 6 高さ3をswap → 高さ2をswap 5
37.
i段目を全てswap • 結局、それぞれの高さごとに 反転しているか
とい うフラグを持てば良い • 高さiを反転 というクエリが来たら、それに対応す るフラグを反転させる
38.
i段目を全てswap • 位置1(木の根)以外にもクエリが来るなら? • 先述のflagを各頂点にもたせて、伝搬させていく •
高さiのノードにアクセスするときは、i番目のフラ グが立っていたら左右の子をswapして、i+1番目以 降のフラグを全て子のフラグに伝搬させる
39.
i段目を全てswap • これをsegtreeを潜る時に行うと、アクセスする ノードの上の頂点は常に何もフラグが立っていない ようにできるので、うまく動く • 計算量はクエリを分割する個数がO(logn)なので、 クエリあたりO(logn)
Télécharger maintenant