SlideShare a Scribd company logo
ARC #003 D
nullmineral      「シャッフル席替え」
「シャッフル席替え」とは

●   AtCoder Regular Contest #003 D問題
●   問題概要:
       –   N人が円形のテーブルの周囲に座っている
       –   ランダムに2人選んで入れ替える操作をK回行う
       –   隣り合わせにしてはいけないペアがM個ある
       –   入れ替えが終わった時に上記ペアがどこも隣り合わ
            せになっていない確率を求めよ
       –   ただし 2 ≦ N ≦ 11, 0 ≦ K ≦ 20, 0 ≦ M ≦ 10
       –   制限: メモリ 64MB, 時間 10s, 許容誤差 ±0.002
解法を考える

●   動的計画法かな?
●   並び方は (11!) = 40M もある
●   DP用に int 型の配列をひとつとるだけで 160MB
●   どうみても MLE/TLE する d==(^o^)==b
●   頑張るとできるのかもしれないけど辛そう
●   ふぇぇ……数論わからないよぉ……
●   解法もうわかんねぇなぁ
乱択という選択肢

●   すべての可能性をシミュレーションするのは不可能
●   適当に何回か試行してみて確率を計算する
●   十分な回数の試行を行えば良い精度に
●   求められている精度はわりと甘い(ここ重要)
●   1回の試行に O( K + N^2 ) くらいかかる気がする
●   とりあえず 100万回 くらいは試行できそう?
●   けどそれだけで精度足りるのかな……
●   試行回数から精度を計算できないかな……
_人人人人人人人_
> 突然の確率論 <
 ̄Y^Y^Y^Y^Y^Y^ ̄
Hoeffding's Inequality

●   X1, X2, …, Xn を独立な Bernoulli 確率変数とする
●   X = X1 + X2 + … + Xn とする
●   このとき以下の式が成立する

●   Pr( | X – E[X] | ≧ εn ) ≦ 2 e^( -2nε^2 )
Pr( | X – E[X] | ≧ εn ) ≦ 2 e^( -2nε^2 )

●   なんだこの難解な不等式は (驚愕)
●   そもそも Bernoulli 確率変数ってなによ
●   まあつまりなにが言いたいかというと
●   確率 p で表が出るコインを n 回投げたときに、表
    が出た回数が (p ± ε)n 回の範囲に収まらない
    確率は 2 e^( -2nε^2 ) 以下になるという話です
●   ちょっと何言ってるか分かんないです
●   確率論やべぇよ……やべぇよ……
●   もうちょっと簡単に言うと
●   「コイントスの試行回数」と「許容誤差」を決めると
    「許容誤差内に収まる確率の下限」を求められる
●   「許容誤差」と「許容誤差内に収まる確率」を決める
    と「コイントスの試行回数」を求められる
とりあえず適用してみよう

●   「シャッフル席替え」に戻ってみる
●   コインの表/裏 → 席替え成功/失敗 に置き換える
●   するとさっきの不等式が適用できる
●   今回は 「許容誤差」と「許容誤差内に収まる確率」
    から「試行回数」を求めたい
●   テストケースが 100 個あると仮定すると、 1 ケース
    あたり 99.99% くらいの確率で通せれば、全体とし
    て 99% くらいの確率でACできる
とりあえず計算してみよう

●   許容誤差 = 0.002
●   許容誤差内に収まる確率 = 0.9999
●   これらをさっきの式に代入して二分探索すると
●   0.9999 ≦ 1 – 2 e^( -0.000008 × n^2 )
●   n ≧ 1237936 と出てくる
●   130万回 くらい試行しておけばまあ安心?
●   それぐらいなら時間内に計算できそう
さぶみっと!

●   とりあえずたくさん投げて確かめてみます
●   20回くらい投げました
    (ジャッジサーバーに高負荷をかける競技プログラマのクズ)
●   ぜんぶAC!!!
●   ちなみに 65万回 くらいにするとWAがちょこちょこ
    (計算すると50%くらいのAC率しか保証されないからね)
    (実際はもっと高い確率でACするけど)
証明? なにそれおいしいの?

●   そういえばヘフディングの不等式を証明していない
●   書くの面倒だしみんな寝ると思うので省きます
●   証明はみなさんへの課題とします
てきとうな考察

●   さっきの式を眺めてみる
●   Pr( | X – E[X] | ≧ εn ) ≦ 2 e^( -2nε^2 )
●   試行回数が少ないと保証AC率は下がる
●   許容誤差が厳しくなると保証AC率は下がる
●   許容誤差が 1/x 倍になっても保証AC率を変えな
    いためには、試行回数を x^2 倍にする必要がある
●   ↑他の乱択っぽい問題にも使いまわせる?
まとめ?

●   解析はつらぽよー (数学できないと死に直結する)
●   乱択もうわかんねぇなぁ……。
●   乱択は最近のプロコンでのトレンド!!!
    ってiwiwiさんが言っていた気がする
●   とりあえず計算量めいっぱいまで試行しましょう
    いちいちこんなこと考察してる暇なさそう(何も考えずにsubmitするクズ)



●   ふぇぇ ✧*。ヾ(。>__<。)ノ゙。*✧

More Related Content

What's hot

AtCoder Beginner Contest 015 解説
AtCoder Beginner Contest 015 解説AtCoder Beginner Contest 015 解説
AtCoder Beginner Contest 015 解説
AtCoder Inc.
 
AtCoder Regular Contest 001
AtCoder Regular Contest 001AtCoder Regular Contest 001
AtCoder Regular Contest 001
AtCoder Inc.
 
Nazoki
NazokiNazoki
Nazoki
Ken Ogura
 
AtCoder Regular Contest 030 解説
AtCoder Regular Contest 030 解説AtCoder Regular Contest 030 解説
AtCoder Regular Contest 030 解説
AtCoder Inc.
 
AtCoder Regular Contest 035 解説
AtCoder Regular Contest 035 解説AtCoder Regular Contest 035 解説
AtCoder Regular Contest 035 解説
AtCoder Inc.
 
DDPC 2016 予選 解説
DDPC 2016 予選 解説DDPC 2016 予選 解説
DDPC 2016 予選 解説
AtCoder Inc.
 
Fractional cascading
Fractional cascadingFractional cascading
Fractional cascading
Nariaki Tateiwa
 
様々な全域木問題
様々な全域木問題様々な全域木問題
様々な全域木問題
tmaehara
 
AtCoder Beginner Contest 025 解説
AtCoder Beginner Contest 025 解説AtCoder Beginner Contest 025 解説
AtCoder Beginner Contest 025 解説
AtCoder Inc.
 
abc027
abc027abc027
abc027
AtCoder Inc.
 
AtCoder Beginner Contest 014 解説
AtCoder Beginner Contest 014 解説AtCoder Beginner Contest 014 解説
AtCoder Beginner Contest 014 解説
AtCoder Inc.
 
AtCoder Regular Contest 027 解説
AtCoder Regular Contest 027 解説AtCoder Regular Contest 027 解説
AtCoder Regular Contest 027 解説
AtCoder Inc.
 
AtCoder Regular Contest 048
AtCoder Regular Contest 048AtCoder Regular Contest 048
AtCoder Regular Contest 048
AtCoder Inc.
 
指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端Yoichi Iwata
 
目指せグラフマスター
目指せグラフマスター目指せグラフマスター
Code Formula 2014 予選A 解説
Code Formula 2014 予選A 解説Code Formula 2014 予選A 解説
Code Formula 2014 予選A 解説
AtCoder Inc.
 
AtCoder Regular Contest 036 解説
AtCoder Regular Contest 036 解説AtCoder Regular Contest 036 解説
AtCoder Regular Contest 036 解説
AtCoder Inc.
 
最大流 (max flow)
最大流 (max flow)最大流 (max flow)
AtCoder Regular Contest 042 解説
AtCoder Regular Contest 042 解説AtCoder Regular Contest 042 解説
AtCoder Regular Contest 042 解説
AtCoder Inc.
 

What's hot (20)

AtCoder Beginner Contest 015 解説
AtCoder Beginner Contest 015 解説AtCoder Beginner Contest 015 解説
AtCoder Beginner Contest 015 解説
 
AtCoder Regular Contest 001
AtCoder Regular Contest 001AtCoder Regular Contest 001
AtCoder Regular Contest 001
 
Nazoki
NazokiNazoki
Nazoki
 
AtCoder Regular Contest 030 解説
AtCoder Regular Contest 030 解説AtCoder Regular Contest 030 解説
AtCoder Regular Contest 030 解説
 
AtCoder Regular Contest 035 解説
AtCoder Regular Contest 035 解説AtCoder Regular Contest 035 解説
AtCoder Regular Contest 035 解説
 
DDPC 2016 予選 解説
DDPC 2016 予選 解説DDPC 2016 予選 解説
DDPC 2016 予選 解説
 
Fractional cascading
Fractional cascadingFractional cascading
Fractional cascading
 
様々な全域木問題
様々な全域木問題様々な全域木問題
様々な全域木問題
 
AtCoder Beginner Contest 025 解説
AtCoder Beginner Contest 025 解説AtCoder Beginner Contest 025 解説
AtCoder Beginner Contest 025 解説
 
abc027
abc027abc027
abc027
 
AtCoder Beginner Contest 014 解説
AtCoder Beginner Contest 014 解説AtCoder Beginner Contest 014 解説
AtCoder Beginner Contest 014 解説
 
AtCoder Regular Contest 027 解説
AtCoder Regular Contest 027 解説AtCoder Regular Contest 027 解説
AtCoder Regular Contest 027 解説
 
AtCoder Regular Contest 048
AtCoder Regular Contest 048AtCoder Regular Contest 048
AtCoder Regular Contest 048
 
指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端
 
目指せグラフマスター
目指せグラフマスター目指せグラフマスター
目指せグラフマスター
 
Code Formula 2014 予選A 解説
Code Formula 2014 予選A 解説Code Formula 2014 予選A 解説
Code Formula 2014 予選A 解説
 
Za atsu-20170328
Za atsu-20170328Za atsu-20170328
Za atsu-20170328
 
AtCoder Regular Contest 036 解説
AtCoder Regular Contest 036 解説AtCoder Regular Contest 036 解説
AtCoder Regular Contest 036 解説
 
最大流 (max flow)
最大流 (max flow)最大流 (max flow)
最大流 (max flow)
 
AtCoder Regular Contest 042 解説
AtCoder Regular Contest 042 解説AtCoder Regular Contest 042 解説
AtCoder Regular Contest 042 解説
 

Viewers also liked

競技プログラミングでの線型方程式系
競技プログラミングでの線型方程式系競技プログラミングでの線型方程式系
競技プログラミングでの線型方程式系tmaehara
 
D言語をたまには真面目に紹介してみる
D言語をたまには真面目に紹介してみるD言語をたまには真面目に紹介してみる
D言語をたまには真面目に紹介してみる
N Masahiro
 
素集合データ構造
素集合データ構造素集合データ構造
素集合データ構造
京大 マイコンクラブ
 
競技プログラミングにおけるMajorization
競技プログラミングにおけるMajorization競技プログラミングにおけるMajorization
競技プログラミングにおけるMajorization
skyaozora
 
パソコン甲子園 ケーキ屋
パソコン甲子園 ケーキ屋パソコン甲子園 ケーキ屋
パソコン甲子園 ケーキ屋
Kazuma Mikami
 
セグツリーイメージ
セグツリーイメージセグツリーイメージ
セグツリーイメージ
Kazuma Mikami
 
データ構造と全探索
データ構造と全探索データ構造と全探索
データ構造と全探索
京大 マイコンクラブ
 
グラフと木
グラフと木グラフと木
文字列検索のいろいろ
文字列検索のいろいろ文字列検索のいろいろ
文字列検索のいろいろKazuma Mikami
 
Coqの公理
Coqの公理Coqの公理
Coqの公理
Masaki Hara
 
動的計画法
動的計画法動的計画法
ソーティングと貪欲法
ソーティングと貪欲法ソーティングと貪欲法
ソーティングと貪欲法
京大 マイコンクラブ
 
計算量とオーダー
計算量とオーダー計算量とオーダー
計算量とオーダー
京大 マイコンクラブ
 
色々なダイクストラ高速化
色々なダイクストラ高速化色々なダイクストラ高速化
色々なダイクストラ高速化
yosupo
 
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
AtCoder Inc.
 
LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~
Yuma Inoue
 
辺彩色
辺彩色辺彩色
辺彩色
Ken Ogura
 
永続データ構造が分からない人のためのスライド
永続データ構造が分からない人のためのスライド永続データ構造が分からない人のためのスライド
永続データ構造が分からない人のためのスライド
Masaki Hara
 
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
Takuya Akiba
 

Viewers also liked (20)

競技プログラミングでの線型方程式系
競技プログラミングでの線型方程式系競技プログラミングでの線型方程式系
競技プログラミングでの線型方程式系
 
D言語をたまには真面目に紹介してみる
D言語をたまには真面目に紹介してみるD言語をたまには真面目に紹介してみる
D言語をたまには真面目に紹介してみる
 
素集合データ構造
素集合データ構造素集合データ構造
素集合データ構造
 
競技プログラミングにおけるMajorization
競技プログラミングにおけるMajorization競技プログラミングにおけるMajorization
競技プログラミングにおけるMajorization
 
パソコン甲子園 ケーキ屋
パソコン甲子園 ケーキ屋パソコン甲子園 ケーキ屋
パソコン甲子園 ケーキ屋
 
セグツリーイメージ
セグツリーイメージセグツリーイメージ
セグツリーイメージ
 
データ構造と全探索
データ構造と全探索データ構造と全探索
データ構造と全探索
 
グラフと木
グラフと木グラフと木
グラフと木
 
文字列検索のいろいろ
文字列検索のいろいろ文字列検索のいろいろ
文字列検索のいろいろ
 
Coqの公理
Coqの公理Coqの公理
Coqの公理
 
動的計画法
動的計画法動的計画法
動的計画法
 
ソーティングと貪欲法
ソーティングと貪欲法ソーティングと貪欲法
ソーティングと貪欲法
 
計算量とオーダー
計算量とオーダー計算量とオーダー
計算量とオーダー
 
色々なダイクストラ高速化
色々なダイクストラ高速化色々なダイクストラ高速化
色々なダイクストラ高速化
 
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
 
LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~
 
計算量
計算量計算量
計算量
 
辺彩色
辺彩色辺彩色
辺彩色
 
永続データ構造が分からない人のためのスライド
永続データ構造が分からない人のためのスライド永続データ構造が分からない人のためのスライド
永続データ構造が分からない人のためのスライド
 
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
 

Similar to ARC#003D

K2PC Div1 E 暗号化
K2PC Div1 E 暗号化K2PC Div1 E 暗号化
K2PC Div1 E 暗号化Kazuma Mikami
 
Rで学ぶ逆変換(逆関数)法
Rで学ぶ逆変換(逆関数)法Rで学ぶ逆変換(逆関数)法
Rで学ぶ逆変換(逆関数)法
Nagi Teramo
 
情報オリンピック夏合宿発表
情報オリンピック夏合宿発表情報オリンピック夏合宿発表
情報オリンピック夏合宿発表
Kazuma Mikami
 
AtCoder Regular Contest 017
AtCoder Regular Contest 017AtCoder Regular Contest 017
AtCoder Regular Contest 017
AtCoder Inc.
 
CODE FESTIVAL 2014 本選 解説
CODE FESTIVAL 2014 本選 解説CODE FESTIVAL 2014 本選 解説
CODE FESTIVAL 2014 本選 解説
AtCoder Inc.
 
Mastermind
MastermindMastermind
Mastermindtomerun
 
ICFP2009-いかにして我々は戦ったか
ICFP2009-いかにして我々は戦ったかICFP2009-いかにして我々は戦ったか
ICFP2009-いかにして我々は戦ったか
ina job
 

Similar to ARC#003D (7)

K2PC Div1 E 暗号化
K2PC Div1 E 暗号化K2PC Div1 E 暗号化
K2PC Div1 E 暗号化
 
Rで学ぶ逆変換(逆関数)法
Rで学ぶ逆変換(逆関数)法Rで学ぶ逆変換(逆関数)法
Rで学ぶ逆変換(逆関数)法
 
情報オリンピック夏合宿発表
情報オリンピック夏合宿発表情報オリンピック夏合宿発表
情報オリンピック夏合宿発表
 
AtCoder Regular Contest 017
AtCoder Regular Contest 017AtCoder Regular Contest 017
AtCoder Regular Contest 017
 
CODE FESTIVAL 2014 本選 解説
CODE FESTIVAL 2014 本選 解説CODE FESTIVAL 2014 本選 解説
CODE FESTIVAL 2014 本選 解説
 
Mastermind
MastermindMastermind
Mastermind
 
ICFP2009-いかにして我々は戦ったか
ICFP2009-いかにして我々は戦ったかICFP2009-いかにして我々は戦ったか
ICFP2009-いかにして我々は戦ったか
 

Recently uploaded

遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
Takayuki Nakayama
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 

Recently uploaded (9)

遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 

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万回 くらいは試行できそう? ● けどそれだけで精度足りるのかな…… ● 試行回数から精度を計算できないかな……
  • 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するクズ) ● ふぇぇ ✧*。ヾ(。>__<。)ノ゙。*✧