Submit Search
Upload
競技プログラミングにおけるMajorization
•
Download as PPTX, PDF
•
2 likes
•
2,350 views
S
skyaozora
Follow
topcoder&AtCoder meetup #0において発表した、プログラミングコンテストに登場したMajorizationの話です
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 10
Download now
Recommended
競技プログラミングでの線型方程式系
競技プログラミングでの線型方程式系
tmaehara
素数判定法
素数判定法
DEGwer
素集合データ構造
素集合データ構造
京大 マイコンクラブ
ARC#003D
ARC#003D
nullmineral
パソコン甲子園 ケーキ屋
パソコン甲子園 ケーキ屋
Kazuma Mikami
セグツリーイメージ
セグツリーイメージ
Kazuma Mikami
データ構造と全探索
データ構造と全探索
京大 マイコンクラブ
グラフと木
グラフと木
京大 マイコンクラブ
Recommended
競技プログラミングでの線型方程式系
競技プログラミングでの線型方程式系
tmaehara
素数判定法
素数判定法
DEGwer
素集合データ構造
素集合データ構造
京大 マイコンクラブ
ARC#003D
ARC#003D
nullmineral
パソコン甲子園 ケーキ屋
パソコン甲子園 ケーキ屋
Kazuma Mikami
セグツリーイメージ
セグツリーイメージ
Kazuma Mikami
データ構造と全探索
データ構造と全探索
京大 マイコンクラブ
グラフと木
グラフと木
京大 マイコンクラブ
文字列検索のいろいろ
文字列検索のいろいろ
Kazuma Mikami
部内勉強会 数え上げの基礎
部内勉強会 数え上げの基礎
Kazuma Mikami
指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端
Yoichi Iwata
Coqの公理
Coqの公理
Masaki Hara
様々な全域木問題
様々な全域木問題
tmaehara
動的計画法
動的計画法
京大 マイコンクラブ
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
Takuya Akiba
ソーティングと貪欲法
ソーティングと貪欲法
京大 マイコンクラブ
計算量とオーダー
計算量とオーダー
京大 マイコンクラブ
色々なダイクストラ高速化
色々なダイクストラ高速化
yosupo
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
AtCoder Inc.
指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~
Yuma Inoue
計算量
計算量
Ken Ogura
辺彩色
辺彩色
Ken Ogura
永続データ構造が分からない人のためのスライド
永続データ構造が分からない人のためのスライド
Masaki Hara
Nazoki
Nazoki
Ken Ogura
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
Takuya Akiba
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
cocodrips
やさしい整数論
やさしい整数論
Kazuma Mikami
More Related Content
Viewers also liked
文字列検索のいろいろ
文字列検索のいろいろ
Kazuma Mikami
部内勉強会 数え上げの基礎
部内勉強会 数え上げの基礎
Kazuma Mikami
指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端
Yoichi Iwata
Coqの公理
Coqの公理
Masaki Hara
様々な全域木問題
様々な全域木問題
tmaehara
動的計画法
動的計画法
京大 マイコンクラブ
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
Takuya Akiba
ソーティングと貪欲法
ソーティングと貪欲法
京大 マイコンクラブ
計算量とオーダー
計算量とオーダー
京大 マイコンクラブ
色々なダイクストラ高速化
色々なダイクストラ高速化
yosupo
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
AtCoder Inc.
指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~
Yuma Inoue
計算量
計算量
Ken Ogura
辺彩色
辺彩色
Ken Ogura
永続データ構造が分からない人のためのスライド
永続データ構造が分からない人のためのスライド
Masaki Hara
Nazoki
Nazoki
Ken Ogura
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
Takuya Akiba
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
cocodrips
やさしい整数論
やさしい整数論
Kazuma Mikami
Viewers also liked
(20)
文字列検索のいろいろ
文字列検索のいろいろ
部内勉強会 数え上げの基礎
部内勉強会 数え上げの基礎
指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端
Coqの公理
Coqの公理
様々な全域木問題
様々な全域木問題
動的計画法
動的計画法
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
ソーティングと貪欲法
ソーティングと貪欲法
計算量とオーダー
計算量とオーダー
色々なダイクストラ高速化
色々なダイクストラ高速化
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
指数時間アルゴリズム入門
指数時間アルゴリズム入門
LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~
計算量
計算量
辺彩色
辺彩色
永続データ構造が分からない人のためのスライド
永続データ構造が分からない人のためのスライド
Nazoki
Nazoki
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
やさしい整数論
やさしい整数論
競技プログラミングにおけるMajorization
1.
Majorizationについて sky58
2.
こんな競プロの問題がありました • 2つの次元が同じベクトルA,Bが与えられる。A=XBを満たす、各要素 が非負で各行・各列の要素の和が1となる行列Xを構成できるか判 定せよ。 • A,Bの次元数は5000以下 •
全ての要素は非負 • Aの全ての要素の和とBの全ての要素の和は等しい • 出展:ICPCアジア地区予選台湾大会2013I問題
3.
当時考えたこと • あるAの要素に対して、それ以上のBの要素が無ければ不可能 • 同様に、Aのある2要素の和に対して、それ以上の和となるBの2要素 が無ければ不可能 •
Aの要素を降順に{𝑎1, 𝑎2, ⋯ 𝑎 𝑛}、Bの要素を降順に{𝑏1, 𝑏2, ⋯ 𝑏 𝑛}と並 べた時、あるの1 ≤ 𝑖 ≤ 𝑛に対し 𝑘=1 𝑖 𝑎 𝑘 > 𝑘=1 𝑖 𝑏 𝑘となれば不可能 • 逆に、そうでなければ構成できるのではないか? • その方針で実装→AC
4.
用語を導入すると • 各要素が非負で、各行・各列の要素の和が1となる正方行列を二重 確率行列と呼ぶ。 • N個の実数の組A=
{𝑎1, 𝑎2, ⋯ 𝑎 𝑛}, B= {𝑏1, 𝑏2, ⋯ 𝑏 𝑛}をそれぞれ降順 に並べたA’= {𝑎′1, 𝑎′2, ⋯ 𝑎′ 𝑛}, B’= {𝑏′1, 𝑏′2, ⋯ 𝑏′ 𝑛}に対し • 𝑘=1 𝑛 𝑎′ 𝑘 ≤ 𝑘=1 𝑛 𝑏′ 𝑘 • 任意の1 ≤ 𝑖 ≤ 𝑛に対し、 𝑘=1 𝑖 𝑎′ 𝑘 ≤ 𝑘=1 𝑖 𝑏′ 𝑘 を満たす時、BはAをmajorizeすると呼び、A<<Bなどと表す。 • この用語を導入すると、先の問題は以下のような命題を表している A<<Bと、A=XBを満たす二重確率行列Xの存在は同値である
5.
(ざっくりとした)証明 • A<<Bなら、Bに有限回のT-変換を施すことでAを得られると仮定する • T-変換とは、𝐶
∈ 𝑅 𝑛に対して、𝑇𝐶 = 𝑐1, ⋯ , 𝑐𝑖−1, 𝑡𝑐𝑖 + 1 −
6.
(ざっくりとした)証明 • A<<Bなら、Bに有限回のT-変換を施すことでAを得られることの証明 • 帰納法で示す。n=2は自明。以下、n-1では示されているとする。 •
A<<Bかつ中身ソート済みの時𝑏1 ≥ 𝑏 𝑘−1 ≥ 𝑎1 ≥ 𝑏 𝑘を満たす2 ≤ 𝑘 ≤ 𝑛が存 在する。その為𝑎1 = 𝑡𝑏1 + 1 − 𝑡)𝑏 𝑘なる0 ≤ 𝑡 ≤ 1を満たす𝑡が取れる。 • なので、BをT-変換して{𝑎1, 𝑏2, ⋯ , 𝑏 𝑘−1, 𝑡𝑏 𝑘 + 1 − 𝑡 𝑏1, 𝑏 𝑘+1 ⋯ , 𝑏 𝑛}にできる。 • ここで、𝑏2 ≥ ⋯ ≥ 𝑏 𝑘−1 ≥ 𝑎2 ≥ ⋯ ≥ 𝑎 𝑘−1とA<<Bより、 { 𝑏2, ⋯ , 𝑏 𝑘−1, 𝑡𝑏 𝑘 +
7.
他の問題でも似たような話が? • 合計n個のアメをk人に配って、各人が持ってるアメの数の積を最大 化するにはどう配ればいいか? • 出展:ARC039B問題「高橋幼稚園」 •
もちろん、できるだけ均等に配ればいい。 • できるだけ均等に配るということは、他の全ての配り方にmajorizeさ れているということでもある。 • A<<Bかつ全ての要素が正なら、Aの全ての要素の積はBの全ての要 素の積以上になるのではないか?
8.
(ざっくりとした)証明 • 前述のように、A<<BならBから有限回のT-変換でAにできる。 • T-変換すると、要素の積が 𝑡𝑏
𝑖+ 1−𝑡)𝑏 𝑗) 𝑡𝑏 𝑗+ 1−𝑡)𝑏 𝑖) 𝑏 𝑖 𝑏 𝑗 倍になる。 • 𝑡𝑏𝑖 + 1 − 𝑡)𝑏𝑗) 𝑡𝑏𝑗 + 1 − 𝑡)𝑏𝑖) = 𝑡 1 − 𝑡) 𝑏𝑖 + 𝑏𝑗 )2≤ 𝑏 𝑖+𝑏 𝑗 2 )2≤ 𝑏𝑖 𝑏𝑗より、 𝑡𝑏 𝑖+ 1−𝑡)𝑏 𝑗) 𝑡𝑏 𝑗+ 1−𝑡)𝑏 𝑖) 𝑏 𝑖 𝑏 𝑗 ≤ 1となる。 • よってT-変換においては要素の積は増えないので、A<<Bかつ全ての 要素が正ならAの全ての要素の積はBの全ての要素の積以上になる
9.
まとめ • A<<Bと二重確率行列Xを使ってA=XBと表せるかは同値 • 何か面白そうな性質なので誰かこんな感じのことを使ったプロコンの 問題とか作ってみてください
10.
参考URL • 英語版Wikipedia • http://en.wikipedia.org/wiki/Majorization •
何とニコニコ大百科にも記事がある • http://dic.nicovideo.jp/a/majorization
Download now