More Related Content
PDF
ゼロから作るDeepLearning 3.3~3.6章 輪読 PPTX
Magnitude ~ extend the Euler Characteristics via Möbius Inversion ~ PDF
PDF
PDF
[DL輪読会]“Submodular Field Grammars Representation” and “Deep Submodular Functi... PDF
PDF
整数格子点上の劣モジュラ被覆に対する高速アルゴリズム PDF
What's hot
PDF
PPTX
[DL輪読会]Clebsch–Gordan Nets: a Fully Fourier Space Spherical Convolutional Neu... PDF
PDF
PDF
2013.12.26 prml勉強会 線形回帰モデル3.2~3.4 PDF
PPTX
Introduction to Persistence Theory PPTX
PPTX
PDF
introductino to persistent homology and topological data analysis PPTX
PDF
PPTX
PPT
PDF
PDF
PPTX
PDF
[DL Hacks] Deterministic Variational Inference for RobustBayesian Neural Netw... PDF
PPT
Data Analysis - Chapter two Viewers also liked
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
Similar to Sort
PDF
AtCoder Beginner Contest 008 解説 PDF
PDF
PDF
AtCoder Beginner Contest 007 解説 PDF
AtCoder Regular Contest 043 解説 PDF
AtCoder Beginner Contest 025 解説 PDF
PDF
PDF
PDF
PDF
PDF
PPTX
PDF
PDF
AtCoder Beginner Contest 009 解説 PDF
PDF
CODE THANKS FESTIVAL 2014 A日程 解説 PDF
PDF
PDF
Sort
- 1.
- 2.
問題概要
配列を値の交換によってソートしたい。
i と j を交換するのに C[i][j] のコストが必要になる。
順列 p をソートするのに必要な最小コスト =: f(p)
f(p) の最大値を求める。
- 3.
着眼点
f(p) を効率よく求めるのは案外大変
( 参考 : Silly Sort )
最も愚直にコストを求めるには、 p からソートされた
状態へ Dijkstra を使う。
f(p) を求めるのに N! 程度のコストが必要になり、
全ての p について求めると (N!)^2 で TLE する。
逆に、ソートされた状態からの距離を考えれば
Dijkstra を 1 回行うだけでよい。
- 4.
解法
N! 通りの全ての順列をノードとするグラフを考える。
ソートされた順列を始点として Dijkstra 法などで各
ノードまでの距離を求める。
距離の最大値が答えとなる。
- 5.
グラフとして見る
0, 1, 2 0, 2, 1 1, 0, 2
1, 2, 0 2, 0, 1 2, 1, 0
C[0][1]
C[0][2]
C[1][2]
- 6.
実装
各順列までの距離をどのようなデータ構造で持つ
か?
1. 連想配列で配列をキーにする
2. 順列をビット列に落とす (3 * 7 bit あれば十分 )
3. 順列に対する最小完全ハッシュ関数を利用す
る ( 変換に N^2 かかるのがネック )
1 や 3 だと実装次第で TLE することもあるようで
す。定数が重いとかではなく計算量が増加します。
- 7.
解答例
宮村 (C++)
95 行 1644 byte
橋本 (Java)
90 行 1800 byte