SlideShare a Scribd company logo
1 of 14
Download to read offline
Problem L: RedBlue
原案, 解説: 10%
テストケース作成等: moti
※はじめに
● この問題は、問題制約・ジャッジの正当性の検証中のため、
コンテストページから解答コードの提出を制限しています。
● コンテスト当日用の解説を上げていますが、後にAOJに問題として上げる場合は、
問題概要を一部変更する可能性があります。それに伴い、テストケースも変更され
る可能性があります。ご了承下さい。
問題概要
二次元平面上に2つの円と、N個の赤色の点とN個の青色の点がある。
赤色の点と青色の点それぞれから半直線を伸ばし、円の内部を通らないように赤と青を
一対一に結んだ時、その線分の長さの総和の最小値を求めよ。
解法
● 幾何 + 最小費用流(コスト最小二部マッチング)
解法(幾何 パート)
● 必要なもの
○ ある点を通る円の接線
○ 円と線分の交差判定
○ 直線と直線の交差判定および交点
解法(幾何 パート)
● すべての赤い点とすべての青い点との間の最小距離を求める
● 2点間の最小距離は、以下の距離の最小値である
○ 2点間を直線で結んだときの距離 (ただし、この線分は円と交差しない )
○ 赤い点を通る円の接線と青い点を通る円の接線の 2つの直線の交点を求める。この交点から赤い
点への距離+交点から青い点への距離
円の接線は、2つの円があり、各点最大 4つずつあるのですべての組み合わせを試してそのときの
最小値をとる
解法(幾何 パート)
● 2点間を直線で結んだときの距離
線分が円と公差しない例
2点間の距離の1つとして考えられる
線分が円と公差する例
2点間の距離の1つとしてはいけな
い
解法(幾何 パート)
● 接線(1つの点に対して最大4つまで存在する)
解法(幾何 パート)
● 接線
d1
d2
青の点を通る円の接線と赤の点を通る円の接線の
交点を黒い点としたとき、
2点間の距離 = d1 + d2
で表される。
これをすべての組み合わせについて調べる。
解法(フロー パート)
● 幾何パートで求めた2点間の最小距離dab
をコストとしてエッジをはる。なお、dab
は
赤い点aと青い点bとの最小距離を表す
S T
1
2
N
.
.
.
1’
2’
N’
赤い点 青い点
0(1)
0(1)
0(1)
0(1)
0(1)
0(1)
コスト(キャパシティ)
d11’
(1)
d1N
’
(1)
dNN’
(1)
d22’
(1)
d N2’
(1)
コーナーケースの例1 (円の接線)
円の接線が平行になっていて
交わらない。
コーナーケースの例2 (円の接線)
点と円の接点の位置が重複している場
合、円の接線を場合分けして求める必
要がある。
結果
● Onsite
○ First Submission: ( min)
○ First AC: ( min)
● Online
○ First Submission: codera_iroha ( 240 min)
○ First AC: anta ( 240 min)
ジャッジ解
moti C++ 249行
kzyKT C++ 166行
arrows C++ 269行
sate C++ 227行

More Related Content

More from Takumi Yamashita (20)

Deposited Ranges
Deposited RangesDeposited Ranges
Deposited Ranges
 
RUPC2017:L解説
RUPC2017:L解説RUPC2017:L解説
RUPC2017:L解説
 
RUPC2017:G解説
RUPC2017:G解説RUPC2017:G解説
RUPC2017:G解説
 
RUPC2017:Dの解説
RUPC2017:Dの解説RUPC2017:Dの解説
RUPC2017:Dの解説
 
RUPC2017:Bの解説
RUPC2017:Bの解説RUPC2017:Bの解説
RUPC2017:Bの解説
 
RUPC2017:Cの解説
RUPC2017:Cの解説RUPC2017:Cの解説
RUPC2017:Cの解説
 
RUPC2017:I解説
RUPC2017:I解説RUPC2017:I解説
RUPC2017:I解説
 
RUPC2017:Aの解説
RUPC2017:Aの解説RUPC2017:Aの解説
RUPC2017:Aの解説
 
RUPC2017:Hの解説
RUPC2017:Hの解説RUPC2017:Hの解説
RUPC2017:Hの解説
 
RUPC2017:K解説
RUPC2017:K解説RUPC2017:K解説
RUPC2017:K解説
 
RUPC2017:E解説
RUPC2017:E解説RUPC2017:E解説
RUPC2017:E解説
 
0: 全体の講評
0: 全体の講評0: 全体の講評
0: 全体の講評
 
H : hegemony get
H : hegemony getH : hegemony get
H : hegemony get
 
G : 解説
G : 解説G : 解説
G : 解説
 
F : 解説
F : 解説F : 解説
F : 解説
 
E : 解説
E : 解説E : 解説
E : 解説
 
D : 解説
D : 解説D : 解説
D : 解説
 
C : 解説
C : 解説C : 解説
C : 解説
 
B potatoes
B  potatoesB  potatoes
B potatoes
 
A: 解説
A: 解説A: 解説
A: 解説
 

L : 解説