Submit Search
Upload
RUPC2015Day2 - K
•
0 likes
•
403 views
N
NariyoshiChida
Follow
立命館大学競技プログラミング合宿2015Day2
Read less
Read more
Engineering
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 15
Download now
Download to read offline
Recommended
Mage
Mage
Ken Ogura
RUPC2015Day2 - C
RUPC2015Day2 - C
NariyoshiChida
Sort
Sort
oupc
Icp3.2 takmin
Icp3.2 takmin
Takuya Minagawa
[ Grasshopper ] interpolate curve basic #02 j
[ Grasshopper ] interpolate curve basic #02 j
onioncraft
仕事をしよう!
仕事をしよう!
gotoloop
実践QBVH
実践QBVH
Shuichi Hayashi
Chapter11.2
Chapter11.2
Takuya Minagawa
Recommended
Mage
Mage
Ken Ogura
RUPC2015Day2 - C
RUPC2015Day2 - C
NariyoshiChida
Sort
Sort
oupc
Icp3.2 takmin
Icp3.2 takmin
Takuya Minagawa
[ Grasshopper ] interpolate curve basic #02 j
[ Grasshopper ] interpolate curve basic #02 j
onioncraft
仕事をしよう!
仕事をしよう!
gotoloop
実践QBVH
実践QBVH
Shuichi Hayashi
Chapter11.2
Chapter11.2
Takuya Minagawa
RUPC2015Day2 - E
RUPC2015Day2 - E
NariyoshiChida
RUPC2015Day2 - I
RUPC2015Day2 - I
NariyoshiChida
RUPC2015Day2 - D
RUPC2015Day2 - D
NariyoshiChida
RUPC2015Day2 - F
RUPC2015Day2 - F
NariyoshiChida
RUPC2015Day2 - A
RUPC2015Day2 - A
NariyoshiChida
RUPC2015Day2 - B
RUPC2015Day2 - B
NariyoshiChida
RUPC2015Day2 - H
RUPC2015Day2 - H
NariyoshiChida
RUPC2015Day2 - 総評
RUPC2015Day2 - 総評
NariyoshiChida
RUPC2015Day2 - J
RUPC2015Day2 - J
NariyoshiChida
RUPC2015Day2 - G
RUPC2015Day2 - G
NariyoshiChida
More Related Content
More from NariyoshiChida
RUPC2015Day2 - E
RUPC2015Day2 - E
NariyoshiChida
RUPC2015Day2 - I
RUPC2015Day2 - I
NariyoshiChida
RUPC2015Day2 - D
RUPC2015Day2 - D
NariyoshiChida
RUPC2015Day2 - F
RUPC2015Day2 - F
NariyoshiChida
RUPC2015Day2 - A
RUPC2015Day2 - A
NariyoshiChida
RUPC2015Day2 - B
RUPC2015Day2 - B
NariyoshiChida
RUPC2015Day2 - H
RUPC2015Day2 - H
NariyoshiChida
RUPC2015Day2 - 総評
RUPC2015Day2 - 総評
NariyoshiChida
RUPC2015Day2 - J
RUPC2015Day2 - J
NariyoshiChida
RUPC2015Day2 - G
RUPC2015Day2 - G
NariyoshiChida
More from NariyoshiChida
(10)
RUPC2015Day2 - E
RUPC2015Day2 - E
RUPC2015Day2 - I
RUPC2015Day2 - I
RUPC2015Day2 - D
RUPC2015Day2 - D
RUPC2015Day2 - F
RUPC2015Day2 - F
RUPC2015Day2 - A
RUPC2015Day2 - A
RUPC2015Day2 - B
RUPC2015Day2 - B
RUPC2015Day2 - H
RUPC2015Day2 - H
RUPC2015Day2 - 総評
RUPC2015Day2 - 総評
RUPC2015Day2 - J
RUPC2015Day2 - J
RUPC2015Day2 - G
RUPC2015Day2 - G
RUPC2015Day2 - K
1.
K問題 Manhattan Warp Machine
2 ! 渡辺(kzyKT)
2.
問題概要 3次元の格子点上で、現在地からマンハッタン距離が di離れた格子点へ移動できる。 (0,0,0)からスタートし、M個の座標を全て訪れる時 の最短移動回数を求める。 1つでも訪れることが不可能な場合は-1を出力。
3.
解説 3次元と2次元に違いはないので、今回は2次元で考えていきます 例: d={2,3}で移動出来るところ (一例) ! (0,0) 出発地点からのマンハッタン距離が 同じところは、同じ回数で移動出来る ! つまり、各マンハッタン距離に対して 最短移動回数を求めればいい
4.
解説 • 1回で移動できるところ 各di ! 0 1
1 1
5.
解説 • 2回で移動できるところ 1次元との大きな違い :
寄り道が出来る diとdjのペア(di dj)に対して、(dj-di) (dj+di)まで1つ置き ! 0 2 2 2 2 3, 5の場合
6.
解説 • 2回で移動できるところ 15 15のペアを見ても良いが、範囲が狭まるだけの無駄が生じ る場合がある 例えば、
ペア : 移動場所 2, 5 : 3, 5, 7 4, 5 : 1, 3, 5, 7, 9 ! 2, 5のペアを見るだけ無駄である
7.
解説 • 2回で移動できるところ ! 偶・奇、奇・偶の場合 (マンハッタン距離が奇数の場所へ移動可能) diに対して、di以下で最大のdiと偶/奇が異なるもの ! 偶・偶、奇・奇の場合
(マンハッタン距離が偶数の場所へ移動可能) dの中で最大値のみ見れば良い
8.
解説 • 3回以上 小さい距離を移動したり、寄り道したりするのは1度だけで良い 残りは出来るだけ大きく移動した方が得 偶数と奇数では移動出来る場所が違うので、 dの中で偶数最大と奇数最大の2つで移動する
9.
解説 • 3回以上 偶数最大 :
deven 、奇数最大 : dodd とする for文で1 6 105まで回して値を更新していく D[i] = min(D[i], min( D[i-deven], D[i-dodd] )+1) D D[i]
10.
解説 • 3回以上 i-dが負になることがあるが、 負への移動回数も正と同じなので、絶対値を取ればいい D D[i]0-2 2
11.
解説 • 3回以上 ¦ i-d
¦ がiより大きくなることもあるが、 既に2回までに行ける場所は見ている。 偶数部分は、dの最大値 2までは2以下で更新されているので、 D[i]は3以下になることが保証されている。 D D[i]0-4 4 0 2 2
12.
解説 各マンハッタン距離について、最短移動回数が求まったので、 (0,0,0)を含めたM+1個の座標の全てのペア間のマンハッタン距 離を求めて、最短移動回数を調べる これをもとに、M個全て訪れた時の最短移動回数を求める
13.
解説 bitDP dp[ 今まで訪れた星のbit ][
現在の星 ] = 最短移動回数 O( 215 15 15 ) または、(0,0,0)を含めた O( 216 16 16 ) dijkstraをしても良い
14.
ジャッジ解 • 渡辺 C++
39行 • 山下 C++ 90行 • 山口 C++ 101行 • 大桃 C++ 143行
15.
結果 • First Submission ・On-site:
Almost_Retired (2h 26m) ・Online: sigma425 (56 min) • First Accepted ・On-site: ・Online: reew4492 (4h 50m) • Success Rate: 2.38% (1/42)
Download now