Submit Search
Upload
ARC#003D
•
2 likes
•
3,664 views
N
nullmineral
Follow
AtCoder Regular Contest #003 D問題についてのスライドです。適当に解いて適当に理論つけて適当にネタをちりばめました。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 14
Download now
Download to read offline
Recommended
やさしい整数論
やさしい整数論
Kazuma Mikami
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
Takuya Akiba
最大流 (max flow)
最大流 (max flow)
HCPC: 北海道大学競技プログラミングサークル
AtCoder Beginner Contest 034 解説
AtCoder Beginner Contest 034 解説
AtCoder Inc.
動的計画法を極める!
動的計画法を極める!
HCPC: 北海道大学競技プログラミングサークル
AtCoder Beginner Contest 012 解説
AtCoder Beginner Contest 012 解説
AtCoder Inc.
図と実装で理解する『木構造入門』
図と実装で理解する『木構造入門』
Proktmr
Abc009
Abc009
AtCoder Inc.
Recommended
やさしい整数論
やさしい整数論
Kazuma Mikami
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
Takuya Akiba
最大流 (max flow)
最大流 (max flow)
HCPC: 北海道大学競技プログラミングサークル
AtCoder Beginner Contest 034 解説
AtCoder Beginner Contest 034 解説
AtCoder Inc.
動的計画法を極める!
動的計画法を極める!
HCPC: 北海道大学競技プログラミングサークル
AtCoder Beginner Contest 012 解説
AtCoder Beginner Contest 012 解説
AtCoder Inc.
図と実装で理解する『木構造入門』
図と実装で理解する『木構造入門』
Proktmr
Abc009
Abc009
AtCoder Inc.
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
Rolling hash
Rolling hash
HCPC: 北海道大学競技プログラミングサークル
目指せグラフマスター
目指せグラフマスター
HCPC: 北海道大学競技プログラミングサークル
Re永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライド
Masaki Hara
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
Takuya Akiba
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
Takuya Akiba
グラフネットワーク〜フロー&カット〜
グラフネットワーク〜フロー&カット〜
HCPC: 北海道大学競技プログラミングサークル
指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端
Yoichi Iwata
指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
AtCoder Regular Contest 031 解説
AtCoder Regular Contest 031 解説
AtCoder Inc.
AtCoder Beginner Contest 023 解説
AtCoder Beginner Contest 023 解説
AtCoder Inc.
2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方
Tsuneo Yoshioka
色々なダイクストラ高速化
色々なダイクストラ高速化
yosupo
AtCoder Beginner Contest 005 解説
AtCoder Beginner Contest 005 解説
AtCoder Inc.
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
Kensuke Otsuki
双対性
双対性
Yoichi Iwata
AtCoder Beginner Contest 007 解説
AtCoder Beginner Contest 007 解説
AtCoder Inc.
AtCoder Regular Contest 023 解説
AtCoder Regular Contest 023 解説
AtCoder Inc.
Union find(素集合データ構造)
Union find(素集合データ構造)
AtCoder Inc.
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
shindannin
部内勉強会 数え上げの基礎
部内勉強会 数え上げの基礎
Kazuma Mikami
競技プログラミングでの線型方程式系
競技プログラミングでの線型方程式系
tmaehara
More Related Content
What's hot
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
Rolling hash
Rolling hash
HCPC: 北海道大学競技プログラミングサークル
目指せグラフマスター
目指せグラフマスター
HCPC: 北海道大学競技プログラミングサークル
Re永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライド
Masaki Hara
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
Takuya Akiba
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
Takuya Akiba
グラフネットワーク〜フロー&カット〜
グラフネットワーク〜フロー&カット〜
HCPC: 北海道大学競技プログラミングサークル
指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端
Yoichi Iwata
指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
AtCoder Regular Contest 031 解説
AtCoder Regular Contest 031 解説
AtCoder Inc.
AtCoder Beginner Contest 023 解説
AtCoder Beginner Contest 023 解説
AtCoder Inc.
2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方
Tsuneo Yoshioka
色々なダイクストラ高速化
色々なダイクストラ高速化
yosupo
AtCoder Beginner Contest 005 解説
AtCoder Beginner Contest 005 解説
AtCoder Inc.
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
Kensuke Otsuki
双対性
双対性
Yoichi Iwata
AtCoder Beginner Contest 007 解説
AtCoder Beginner Contest 007 解説
AtCoder Inc.
AtCoder Regular Contest 023 解説
AtCoder Regular Contest 023 解説
AtCoder Inc.
Union find(素集合データ構造)
Union find(素集合データ構造)
AtCoder Inc.
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
shindannin
What's hot
(20)
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Rolling hash
Rolling hash
目指せグラフマスター
目指せグラフマスター
Re永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライド
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
グラフネットワーク〜フロー&カット〜
グラフネットワーク〜フロー&カット〜
指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端
指数時間アルゴリズム入門
指数時間アルゴリズム入門
AtCoder Regular Contest 031 解説
AtCoder Regular Contest 031 解説
AtCoder Beginner Contest 023 解説
AtCoder Beginner Contest 023 解説
2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方
色々なダイクストラ高速化
色々なダイクストラ高速化
AtCoder Beginner Contest 005 解説
AtCoder Beginner Contest 005 解説
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
双対性
双対性
AtCoder Beginner Contest 007 解説
AtCoder Beginner Contest 007 解説
AtCoder Regular Contest 023 解説
AtCoder Regular Contest 023 解説
Union find(素集合データ構造)
Union find(素集合データ構造)
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
Viewers also liked
部内勉強会 数え上げの基礎
部内勉強会 数え上げの基礎
Kazuma Mikami
競技プログラミングでの線型方程式系
競技プログラミングでの線型方程式系
tmaehara
D言語をたまには真面目に紹介してみる
D言語をたまには真面目に紹介してみる
N Masahiro
素集合データ構造
素集合データ構造
京大 マイコンクラブ
競技プログラミングにおけるMajorization
競技プログラミングにおけるMajorization
skyaozora
パソコン甲子園 ケーキ屋
パソコン甲子園 ケーキ屋
Kazuma Mikami
セグツリーイメージ
セグツリーイメージ
Kazuma Mikami
データ構造と全探索
データ構造と全探索
京大 マイコンクラブ
グラフと木
グラフと木
京大 マイコンクラブ
文字列検索のいろいろ
文字列検索のいろいろ
Kazuma Mikami
Coqの公理
Coqの公理
Masaki Hara
様々な全域木問題
様々な全域木問題
tmaehara
動的計画法
動的計画法
京大 マイコンクラブ
ソーティングと貪欲法
ソーティングと貪欲法
京大 マイコンクラブ
計算量とオーダー
計算量とオーダー
京大 マイコンクラブ
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
AtCoder Inc.
LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~
Yuma Inoue
計算量
計算量
Ken Ogura
辺彩色
辺彩色
Ken Ogura
永続データ構造が分からない人のためのスライド
永続データ構造が分からない人のためのスライド
Masaki Hara
Viewers also liked
(20)
部内勉強会 数え上げの基礎
部内勉強会 数え上げの基礎
競技プログラミングでの線型方程式系
競技プログラミングでの線型方程式系
D言語をたまには真面目に紹介してみる
D言語をたまには真面目に紹介してみる
素集合データ構造
素集合データ構造
競技プログラミングにおけるMajorization
競技プログラミングにおけるMajorization
パソコン甲子園 ケーキ屋
パソコン甲子園 ケーキ屋
セグツリーイメージ
セグツリーイメージ
データ構造と全探索
データ構造と全探索
グラフと木
グラフと木
文字列検索のいろいろ
文字列検索のいろいろ
Coqの公理
Coqの公理
様々な全域木問題
様々な全域木問題
動的計画法
動的計画法
ソーティングと貪欲法
ソーティングと貪欲法
計算量とオーダー
計算量とオーダー
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~
計算量
計算量
辺彩色
辺彩色
永続データ構造が分からない人のためのスライド
永続データ構造が分からない人のためのスライド
Similar to ARC#003D
K2PC Div1 E 暗号化
K2PC Div1 E 暗号化
Kazuma Mikami
Rで学ぶ逆変換(逆関数)法
Rで学ぶ逆変換(逆関数)法
Nagi Teramo
AtCoder Regular Contest 027 解説
AtCoder Regular Contest 027 解説
AtCoder Inc.
情報オリンピック夏合宿発表
情報オリンピック夏合宿発表
Kazuma Mikami
AtCoder Regular Contest 017
AtCoder Regular Contest 017
AtCoder Inc.
CODE FESTIVAL 2014 本選 解説
CODE FESTIVAL 2014 本選 解説
AtCoder Inc.
Mastermind
Mastermind
tomerun
ICFP2009-いかにして我々は戦ったか
ICFP2009-いかにして我々は戦ったか
ina job
Similar to ARC#003D
(8)
K2PC Div1 E 暗号化
K2PC Div1 E 暗号化
Rで学ぶ逆変換(逆関数)法
Rで学ぶ逆変換(逆関数)法
AtCoder Regular Contest 027 解説
AtCoder Regular Contest 027 解説
情報オリンピック夏合宿発表
情報オリンピック夏合宿発表
AtCoder Regular Contest 017
AtCoder Regular Contest 017
CODE FESTIVAL 2014 本選 解説
CODE FESTIVAL 2014 本選 解説
Mastermind
Mastermind
ICFP2009-いかにして我々は戦ったか
ICFP2009-いかにして我々は戦ったか
Recently uploaded
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
sugiuralab
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
sugiuralab
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
Recently uploaded
(8)
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
ARC#003D
1.
ARC #003 D nullmineral
「シャッフル席替え」
2.
「シャッフル席替え」とは ●
AtCoder Regular Contest #003 D問題 ● 問題概要: – N人が円形のテーブルの周囲に座っている – ランダムに2人選んで入れ替える操作をK回行う – 隣り合わせにしてはいけないペアがM個ある – 入れ替えが終わった時に上記ペアがどこも隣り合わ せになっていない確率を求めよ – ただし 2 ≦ N ≦ 11, 0 ≦ K ≦ 20, 0 ≦ M ≦ 10 – 制限: メモリ 64MB, 時間 10s, 許容誤差 ±0.002
3.
解法を考える ●
動的計画法かな? ● 並び方は (11!) = 40M もある ● DP用に int 型の配列をひとつとるだけで 160MB ● どうみても MLE/TLE する d==(^o^)==b ● 頑張るとできるのかもしれないけど辛そう ● ふぇぇ……数論わからないよぉ…… ● 解法もうわかんねぇなぁ
4.
乱択という選択肢 ●
すべての可能性をシミュレーションするのは不可能 ● 適当に何回か試行してみて確率を計算する ● 十分な回数の試行を行えば良い精度に ● 求められている精度はわりと甘い(ここ重要) ● 1回の試行に O( K + N^2 ) くらいかかる気がする ● とりあえず 100万回 くらいは試行できそう? ● けどそれだけで精度足りるのかな…… ● 試行回数から精度を計算できないかな……
5.
_人人人人人人人_ > 突然の確率論 <  ̄Y^Y^Y^Y^Y^Y^ ̄
6.
Hoeffding's Inequality ●
X1, X2, …, Xn を独立な Bernoulli 確率変数とする ● X = X1 + X2 + … + Xn とする ● このとき以下の式が成立する ● Pr( | X – E[X] | ≧ εn ) ≦ 2 e^( -2nε^2 )
7.
Pr( | X
– E[X] | ≧ εn ) ≦ 2 e^( -2nε^2 ) ● なんだこの難解な不等式は (驚愕) ● そもそも Bernoulli 確率変数ってなによ ● まあつまりなにが言いたいかというと ● 確率 p で表が出るコインを n 回投げたときに、表 が出た回数が (p ± ε)n 回の範囲に収まらない 確率は 2 e^( -2nε^2 ) 以下になるという話です
8.
●
ちょっと何言ってるか分かんないです ● 確率論やべぇよ……やべぇよ…… ● もうちょっと簡単に言うと ● 「コイントスの試行回数」と「許容誤差」を決めると 「許容誤差内に収まる確率の下限」を求められる ● 「許容誤差」と「許容誤差内に収まる確率」を決める と「コイントスの試行回数」を求められる
9.
とりあえず適用してみよう ●
「シャッフル席替え」に戻ってみる ● コインの表/裏 → 席替え成功/失敗 に置き換える ● するとさっきの不等式が適用できる ● 今回は 「許容誤差」と「許容誤差内に収まる確率」 から「試行回数」を求めたい ● テストケースが 100 個あると仮定すると、 1 ケース あたり 99.99% くらいの確率で通せれば、全体とし て 99% くらいの確率でACできる
10.
とりあえず計算してみよう ●
許容誤差 = 0.002 ● 許容誤差内に収まる確率 = 0.9999 ● これらをさっきの式に代入して二分探索すると ● 0.9999 ≦ 1 – 2 e^( -0.000008 × n^2 ) ● n ≧ 1237936 と出てくる ● 130万回 くらい試行しておけばまあ安心? ● それぐらいなら時間内に計算できそう
11.
さぶみっと! ●
とりあえずたくさん投げて確かめてみます ● 20回くらい投げました (ジャッジサーバーに高負荷をかける競技プログラマのクズ) ● ぜんぶAC!!! ● ちなみに 65万回 くらいにするとWAがちょこちょこ (計算すると50%くらいのAC率しか保証されないからね) (実際はもっと高い確率でACするけど)
12.
証明? なにそれおいしいの? ●
そういえばヘフディングの不等式を証明していない ● 書くの面倒だしみんな寝ると思うので省きます ● 証明はみなさんへの課題とします
13.
てきとうな考察 ●
さっきの式を眺めてみる ● Pr( | X – E[X] | ≧ εn ) ≦ 2 e^( -2nε^2 ) ● 試行回数が少ないと保証AC率は下がる ● 許容誤差が厳しくなると保証AC率は下がる ● 許容誤差が 1/x 倍になっても保証AC率を変えな いためには、試行回数を x^2 倍にする必要がある ● ↑他の乱択っぽい問題にも使いまわせる?
14.
まとめ? ●
解析はつらぽよー (数学できないと死に直結する) ● 乱択もうわかんねぇなぁ……。 ● 乱択は最近のプロコンでのトレンド!!! ってiwiwiさんが言っていた気がする ● とりあえず計算量めいっぱいまで試行しましょう いちいちこんなこと考察してる暇なさそう(何も考えずにsubmitするクズ) ● ふぇぇ ✧*。ヾ(。>__<。)ノ゙。*✧
Download now