狠狠撸
Search
Submit Search
几何コンテスト2013
?
2 likes
?
3,580 views
Naoto Mizuno
1 of 67
Download now
Downloaded 12 times
More Related Content
几何コンテスト2013
1.
幾何コン2013 @not_522 @pepsin_amylase
2.
Problem ?A 役?人 原案 : ?@not_?522 テスト
: ?@not_?522, ?@pepsin_?amylase 解説 : ?@pepsin_?amylase 2013年 6月 30日 幾何コンテスト ?2013
3.
問題概要 ?? xy平?面上に300頂点が与えられる ?? 任意の3点は同?一直線上にない ??
共有点を持たないように出来るだけ多くの 三?角形を作れ 2013年 6月 30日 幾何コンテスト ?2013
4.
問題概要 ?? xy平?面上に300頂点が与えられる ?? 任意の3点は同?一直線上にない ??
共有点を持たないように出来るだけ多くの 三?角形を作れ ?? この制約が重要な役割を果たします 2013年 6月 30日 幾何コンテスト ?2013
5.
解法1 ?? x 座標でソートし?小さい順に三?角形を作る ??
x 座標が同じ点は2個以下なのでうまくいき ます 2013年 6月 30日 幾何コンテスト ?2013
6.
解法1 ?動作の様?子 2013年 6月
30日 幾何コンテスト ?2013
7.
解法1 ?動作の様?子 2013年 6月
30日 幾何コンテスト ?2013
8.
解法1 ?動作の様?子 2013年 6月
30日 幾何コンテスト ?2013
9.
解法2 ?? 頂点の凸包を取り、そこから辺を?一つ選ぶ ?? 凸包を取ると頂点が辺の?片側に寄る ??
辺のどちらかの頂点を原点にとり、各頂点 の偏?角を考える ?? 偏?角が?一番?小さい頂点とはじめに選んだ辺 で三?角形を作る ?? これを100回繰り返す 2013年 6月 30日 幾何コンテスト ?2013
10.
解法2 ?動作の様?子 2013年 6月
30日 幾何コンテスト ?2013
11.
解法2 ?動作の様?子 この点からの偏?角を考える 2013年 6月
30日 幾何コンテスト ?2013
12.
解法2 ?動作の様?子 3頂点が同?一直線上にないので、 最?小偏?角の頂点はただひとつに決まる これが最?小偏?角の頂点 2013年 6月
30日 幾何コンテスト ?2013
13.
解法2 ?動作の様?子 2013年 6月
30日 幾何コンテスト ?2013
14.
回答状況 満点の?人数:88?人 最初に正の得点を得た提出 ?? evima(1分21秒, 1点) 最初に満点を得た提出 ??
semiexp(3分41秒) 2013年 6月 30日 幾何コンテスト ?2013
15.
Problem ?B ?玉座の間 原案 : ?@not_?522 テスト
: ?@not_?522, ?@pepsin_?amylase 解説 : ?@pepsin_?amylase 2013年 6月 30日 幾何コンテスト ?2013
16.
問題概要 ?? xy平?面上にn頂点が与えられる ?? y軸に関して線対称になるように点を動かし たい ??
移動先は重複していてもよい ?? 移動距離離の総和を最?小化せよ 2013年 6月 30日 幾何コンテスト ?2013
17.
部分点 ?? (1) 50点
:n = 1 ?? (2) 50点 :n ≦ 10 ?? (3) 50点 :n ≦ 20 ?? (4) 50点 :n ≦ 100 2013年 6月 30日 幾何コンテスト ?2013
18.
解法1(50点) ?? 1頂点の場合はy軸に移動させるしかない ?? x座標の絶対値が答え 2013年
6月 30日 幾何コンテスト ?2013
19.
解法2(100点) ?? 対応させるペアの組み合わせをすべて試す ?? n!
/ 2(n/2) ≦ 113400通り 2013年 6月 30日 幾何コンテスト ?2013
20.
2頂点の組を対称にする ?? 各ペアを対称にするのに必要な移動距離離 ?? =
ペアの?片?方をy軸反転させたあとで2点 を?一致させるのに必要な移動距離離 ?? = ペアの?片?方をy軸反転させたあとの2点間 の距離離 ?? もしくはそれぞれをy軸にのせるのに必要な 距離離の和 2013年 6月 30日 幾何コンテスト ?2013
21.
2頂点の組を対称にする ?赤実線 ?= 対称にするのに必要な距離離 ?青実線
= y軸に乗せるのに必要な距離離 2013年 6月 30日 幾何コンテスト ?2013
22.
解法3(150点) ?? すでに線対称になっている頂点集合を状態 としたbitDP ?? 2通りの遷移があるのに注意 ??
2頂点をペアとして対称にする ?? 1頂点をy軸上に移動させる 2013年 6月 30日 幾何コンテスト ?2013
23.
解法4(200点) ?? この図をよく?見見ると…… 2013年 6月
30日 幾何コンテスト ?2013
24.
解法4(200点) ?? y軸に載せないほうが得する ?
x 座標の符 号が異異なる a ?? ということがわかる ?? d < c, a < b から従う c d 2013年 6月 30日 幾何コンテスト ?2013 b
25.
解法4(200点) ?? x座標の符号が異異なるペアについてのみ、そ のペアを対称にするのに必要な距離離をコス トとする辺を張ったグラフを作る ?? これは?二部グラフになる ??
?足りない側に ?y ?= ?0 ?の頂点を付け?足して 左右の頂点を同数にしておく ?? このようにして作ったグラフ上での最?小費 ?用完全マッチングとなる ?? ?二部グラフなので最?小費?用流流を流流す 2013年 6月 30日 幾何コンテスト ?2013
26.
回答状況 満点の?人数:26?人 最初に正の得点を得た提出 ?? kyuridenamida(3分6秒, 50点) 最初に満点を得た提出 ??
Navi(21分55秒) 2013年 6月 30日 幾何コンテスト ?2013
27.
C 泥棒 原案:@not_522 テスター:@not_522,@pepsin_amylase 解説:@not_522 参考文献:コンピュータ?ジオメトリ
28.
C 泥棒 ごめんなさい ?制約を読み解くのが難しいです 1≦X,Y≦108,アジトは(0,0) →アジトが囲まれることはない わざとだった(悪質) ?被害者多数 数人は出ると思ってましたが…
29.
C 泥棒 いいわけ ?読み落とす方が悪い ?座標の範囲は気をつけて欲しい -105≦X,Y≦105だと誤差死の危険が ?冷静に考えてそんな難しい問題解けない (4)はたぶん無理
30.
C 泥棒 問題概要 ?監視所を結んだ線分で家が囲まれるか判定 線分に乗っていてもダメ ?監視所はどんどん増える ?家も次々与えられる
31.
C(1) (1) ?監視所 N≦3 ?家 M=1
32.
C(1) 線分に乗っているか ?はまりやすいです 何も見ずに書いたら自分もはまりました ?線分に対して点がどこにあるか判定 ccwを使いましょう http://www.prefield.com/algorithm/geometry/ccw.html
33.
C(1) 三角形の内部にあるか ?辺から見て全て左側か全て右側ならいい ccwを使いましょう 左 右
34.
C(2) (2) ?監視所 N≦100 ?家 M≦100
35.
C(2) 実は(1)と同じ ?全部の線分に対して判定 O(N2M) ?全部の三角形に対して判定 O(N3M) →間に合う
36.
C(3) (3) ?監視所 N≦1000 ?家 M≦1000
37.
C(3) 三角形作ってると間に合いません …のつもりだったがテストケースが弱くて通る ごめんなさい ?そもそも内側の線分とか考える必要ない →凸包
38.
C(3) 凸包 ?点の集合を覆う最小の凸多角形 O(N log N)のアルゴリズムがある Andrew's
monotone chainなど http://www.prefield.com/algorithm/geometry/convex_hull.html ?凸包作るのはO(NMlogN) 間に合う
39.
C(3) 多角形に点が含まれるか ?その点を通る半直線と凸包が何回交わるか 偶数だと外部、奇数だと内部 crossing number algorithm http://www.prefield.com/algorithm/geometry/contains.html ?一回の判定がO(N)、全体でO(NM) 間に合う
40.
C(4) (4) ?監視所 N≦100000 ?家 M≦100000
41.
C(4) 監視所多すぎ ?毎回凸包求めてたら終わらない ?内外判定もさっきのアルゴリズムじゃダメ
42.
C(4) 監視所多すぎ ?毎回凸包求めてたら終わらない →動的凸包 ?内外判定もさっきのアルゴリズムじゃダメ →凸多角形の性質を活かす
43.
C(4) 動的凸包 ?点の挿入をO(log N)でやる ならし計算量でOK ?計算幾何学では有名な問題 2 ?点の削除があってもO((log N)
)らしい Overmars, M. H., van Leeuwen, J. (1981)
44.
C(4) Andrew's monotone chain ?上包と下包をくっつける
上包 下包
45.
C(4) Andrew's monotone chain ?動的にできないか? ?上包と下包を別々に扱えば良さそう ?挿入する位置を決めて凸になるまで点を削除
46.
C(4) 動的凸包 ?次の操作がO(log N)でできればOK 検索 挿入 削除 ?そう、平衡二分探索木
47.
C(4) 平衡二分探索木 ?いろんなことができるデータ構造 解説は省略します 詳しく知りたい人はこちら http://www.slideshare.net/iwiwi/2-12188757 ?C++ならSTLのsetでも通ります
48.
C(4) 内外判定 ?動的凸包と同様に上包と下包でわける ?対応する辺を探して上か下か調べる 二分探索すればいい O(log N) ?全体でO(M log
N)
49.
C 解答状況 正答数:3 ファーストアクセプト (3)uwi (0:32:14) (4)Navi
(1:22:15)
50.
D 魔女 原案:@not_522 テスター:@not_522,@pepsin_amylase 解説:@not_522
51.
D 魔女 問題概要 ?魔女を中心とする円形の呪いには入れない ?スタートからゴールへの最短距離を求める ?呪いの半径が時間変化する やばすぎ
52.
D 魔女 必要なライブラリ ?ある点を通る円の接線 ?2円の共通接線
53.
D(1) (1) ?N=1 ?Wv=0
54.
D(1) 経路は3パターンしかない ?まっすぐゴールまで進む 呪いに触れずにすむならこれが最短 ?呪いの上側を通る ?呪いの下側を通る スタートを通る接線とゴールを通る接線を 求めると解ける
55.
D(2) (2) ?N≦10 ?Wv=0
56.
D(2) グラフに変換して最短経路問題を解く 頂点は ?スタート?ゴール ?スタート?ゴールからの接線の接点 ?2円の共通接線の接点 Impossibleになるケースが存在することに注意
57.
D(3) (3) ?N≦10 ?Wv=0またはV<Wv
58.
D(3) (2)にV<Wvが追加されただけ V<Wvの呪いの周囲を移動することは不可能 最短経路で呪いに追いつかれるなら他のルート でも追いつかれる 固定された呪いのみで最短経路を求めゴールで 広がる呪いに追いつかれているか調べればよい
59.
D(4) (4) ?N=1 ?0<Wv<V
60.
D(4) 経路は3パターンしかない ?まっすぐゴールまで進む 呪いに触れずにすむならこれが最短 ?呪いの上側を通る ?呪いの下側を通る 以降では魔女を原点とし、スタート地点が y軸上にあるとする
61.
D(4) まっすぐゴールまで進む 呪いと接触しないかの判定が必要 →2次方程式を解くだけ 円の方程式:x2+y2=(Wr + t
Wv)2 位置:(Sx + t dx, t dy) これが0 < t < |S-G|/Vに解を持つか判定する
62.
D(4) 呪いの周囲を通る① スタートから直線移動して呪いの周囲を動く 軌跡になめらかに入る そのまま直線で動くと呪いと接するだけ →2次方程式を解くだけ 円と位置の連立方程式がtについて唯1つ解を もつようなdx,dyを求める
63.
D(4) 呪いの周囲を通る② 呪いの周囲を動く軌跡 →極座標系で微分方程式を解くだけ 満たすべき方程式(?は時間微分を表す)
64.
D(4) 呪いの周囲を通る③ 呪いの周囲を動く軌跡 対数螺旋(等角螺旋)になる
65.
D(4) 呪いの周囲を通る④ 呪いから離れてゴールへ向かう →二分探索するだけ 対数螺旋の「中心を通る直線と螺旋の交点で の接線とのなす角は一定」という性質を使う と比較的容易に書ける
66.
D(4) 呪いの周囲を通る⑤ 全体の長さを求める 一見、対数螺旋の長さを求める必要がありそう →実は要らない 対数螺旋に触れた点、離れた点がわかればWv が一定なのでかかった時間はすぐに求められる
67.
D 解答状況 正答数:0 ファーストアクセプト (1)uwi (1:24:39) (2)sune2
(2:46:25)
Download