SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
RUPC2019_D
矢
原案 rodea
解説 monkukui
問題文 rodea
解答 rodea monkukui Tsuta_J
問題概要
≔ 送風機
図のように、送風機の位置情報が与えられる。 ≔ 矢
簡単のため、座標の両端に送風機があることとする。
まず、損失の定義を具体的に説明する。
問題概要
≔ 送風機
≔ 矢
例えば、矢の長さが 2 のとき
問題概要
≔ 送風機
≔ 矢
例えば、矢の長さが 2 のとき
損失!
問題概要
≔ 送風機
≔ 矢
例えば、矢の長さが 2 のとき
問題概要
≔ 送風機
≔ 矢
例えば、矢の長さが 2 のとき
問題概要
≔ 送風機
≔ 矢
例えば、矢の長さが 2 のとき
問題概要
≔ 送風機
≔ 矢
例えば、矢の長さが 2 のとき
問題概要
≔ 送風機
≔ 矢
例えば、矢の長さが 2 のとき
問題概要
≔ 送風機
≔ 矢
例えば、矢の長さが 2 のとき
損失!
問題概要
≔ 送風機
≔ 矢
例えば、矢の長さが 2 のとき
損失!
問題概要
≔ 送風機
≔ 矢
例えば、矢の長さが 2 のとき
損失!
問題概要
≔ 送風機
≔ 矢
例えば、矢の長さが 2 のとき
損失!
問題概要
≔ 送風機
≔ 矢
例えば、矢の長さが 2 のとき
問題概要
≔ 送風機
≔ 矢
例えば、矢の長さが 2 のとき
問題概要
≔ 送風機
≔ 矢
例えば、矢の長さが 2 のとき
損失!
問題概要
≔ 送風機
≔ 矢
例えば、矢の長さが 2 のとき
損失!
問題概要
≔ 送風機
≔ 矢
例えば、矢の長さが 2 のとき
問題概要
≔ 送風機
≔ 矢
例えば、矢の長さが 2 のとき
問題概要
≔ 送風機
≔ 矢
例えば、矢の長さが 2 のとき
損失!
問題概要
≔ 送風機
≔ 矢
例えば、矢の長さが 2 のとき
問題概要
≔ 送風機
≔ 矢
例えば、矢の長さが 2 のとき
合計 8 回の損失!
問題概要
• 以下のクエリが 𝑄 個与えられる
• 損失が 𝑙 回まで許されてるとき、到達できる矢の最小の長さは?
1 ≤ 𝑁 ≤ 105 (座標の長さ)
1 ≤ 𝑄 ≤ 105
(クエリの数)
考察
矢の長さに対して、損失回数には単調性がある。
矢の長さに対する損失回数が事前に分かっていれば、各クエリ処理
は二分探索をすることで、𝑂 log 𝑁 で処理できる。
考察
矢の長さに対して性がある
矢の長さに対する損失回数が事前に分かっていれば、各クエリ処理
は二分探索をすることで、𝑂 log 𝑁 で処理できる
矢の長さ 損失回数
1 13
2 8
3 4
4 2
5 1
6 0
考察
𝑑𝑝𝑖 ≔ 矢の長さが 𝑖 の時の損失回数
(𝑎𝑖 ≔ 送風機がない、ちょうど長さが 𝑖 の区間の数)
考察
𝑑𝑝𝑖 ≔ 矢の長さが 𝑖 の時の損失回数
(𝑎𝑖 ≔ 送風機がない、ちょうど長さが 𝑖 の区間の数)
𝑑𝑝2 = 1 ⋅ 𝑎2 + 2 ⋅ 𝑎3 + 3 ⋅ 𝑎4 + 4 ⋅ 𝑎5
考察
𝑑𝑝𝑖 ≔ 矢の長さが 𝑖 の時の損失回数
(𝑎𝑖 ≔ 送風機がない、ちょうど長さが 𝑖 の区間の数)
𝑑𝑝𝑖 = 1 ⋅ 𝑎𝑖 + 2 ⋅ 𝑎𝑖+1 + 3 ⋅ 𝑎𝑖+2 + ⋯ + 𝑛 − 𝑖 + 1 ⋅ 𝑎 𝑛
考察
𝑑𝑝𝑖 ≔ 矢の長さが 𝑖 の時の損失回数
(𝑎𝑖 ≔ 送風機がない、ちょうど長さが 𝑖 の区間の数)
𝑑𝑝𝑖 = 1 ⋅ 𝑎𝑖 + 2 ⋅ 𝑎𝑖+1 + 3 ⋅ 𝑎𝑖+2 + ⋯ + 𝑛 − 𝑖 + 1 ⋅ 𝑎 𝑛
𝑑𝑝𝑖+1 = 1 ⋅ 𝑎𝑖+1 + 2 ⋅ 𝑎𝑖+2 + ⋯ + 𝑛 − 𝑖 ⋅ 𝑎 𝑛
考察
𝑑𝑝𝑖 ≔ 矢の長さが 𝑖 の時の損失回数
(𝑎𝑖 ≔ 送風機がない、ちょうど長さが 𝑖 の区間の数)
𝑑𝑝𝑖 = 1 ⋅ 𝑎𝑖 + 2 ⋅ 𝑎𝑖+1 + 3 ⋅ 𝑎𝑖+2 + ⋯ + 𝑛 − 𝑖 + 1 ⋅ 𝑎 𝑛
𝑑𝑝𝑖+1 = 1 ⋅ 𝑎𝑖+1 + 2 ⋅ 𝑎𝑖+2 + ⋯ + 𝑛 − 𝑖 ⋅ 𝑎 𝑛
𝑑𝑝𝑖 = 𝑑𝑝𝑖+1 + 𝑎𝑖 + 𝑎𝑖+1 + 𝑎𝑖+2 + ⋯ + 𝑎 𝑛
考察
• DP の更新を愚直に行うと𝑂 𝑁2 かかる。
• 例えば累積和やセグ木などを使い、𝑎𝑖 の区間和を高速に求めること
でDP の更新が可能。
• データ構造を使わなくとも、少し工夫するとできる。
• 全体では DP + 二分探索で 𝑂 𝑁 + 𝑄 𝑙𝑜𝑔 𝑁 でこの問題が解けた。
Writer 解
• Tsuta_J (C++) 65 行
• monkukui (C++) 45 行
• rodea (C++) 60 行
提出状況
• On-site : rupc_zekkidenamida (28min)
• On-line : okimochi (23 min)
• 31 / 93 (33.3 %)

Contenu connexe

Plus de HCPC: 北海道大学競技プログラミングサークル

Plus de HCPC: 北海道大学競技プログラミングサークル (20)

ACPC 2019 Day3 G: Restricted DFS
ACPC 2019 Day3 G: Restricted DFSACPC 2019 Day3 G: Restricted DFS
ACPC 2019 Day3 G: Restricted DFS
 
ACPC 2019 Day3 F: 部分文字列分解
ACPC 2019 Day3 F: 部分文字列分解ACPC 2019 Day3 F: 部分文字列分解
ACPC 2019 Day3 F: 部分文字列分解
 
ACPC 2019 Day3 E: 総和の切り取り
ACPC 2019 Day3 E: 総和の切り取りACPC 2019 Day3 E: 総和の切り取り
ACPC 2019 Day3 E: 総和の切り取り
 
ACPC 2019 Day3 B: パフェ
ACPC 2019 Day3 B: パフェACPC 2019 Day3 B: パフェ
ACPC 2019 Day3 B: パフェ
 
ACPC 2019 Day3 A: 間違い探し
ACPC 2019 Day3 A: 間違い探しACPC 2019 Day3 A: 間違い探し
ACPC 2019 Day3 A: 間違い探し
 
HUPC 2019 Day2 G: 木
HUPC 2019 Day2 G: 木HUPC 2019 Day2 G: 木
HUPC 2019 Day2 G: 木
 
HUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 E: ジャムHUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 E: ジャム
 
HUPC 2019 Day2 H: Revenge of UMG
HUPC 2019 Day2 H: Revenge of UMGHUPC 2019 Day2 H: Revenge of UMG
HUPC 2019 Day2 H: Revenge of UMG
 
HUPC 2019 Day2 F: MOD Rush
HUPC 2019 Day2 F: MOD RushHUPC 2019 Day2 F: MOD Rush
HUPC 2019 Day2 F: MOD Rush
 
HUPC 2019 Day2 C: 串刺し
HUPC 2019 Day2 C: 串刺しHUPC 2019 Day2 C: 串刺し
HUPC 2019 Day2 C: 串刺し
 
HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 F: グリッドの番号HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 F: グリッドの番号
 
HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 E: 最短経路の復元HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 E: 最短経路の復元
 
HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 D: 貪欲が最適?HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 D: 貪欲が最適?
 
HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 C: 短絡評価HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 C: 短絡評価
 
HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 B: 自身の 2 倍HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 B: 自身の 2 倍
 
HUPC 2019 Day1 A: four tea
HUPC 2019 Day1 A: four teaHUPC 2019 Day1 A: four tea
HUPC 2019 Day1 A: four tea
 
Convex Hull Trick
Convex Hull TrickConvex Hull Trick
Convex Hull Trick
 
プログラミングコンテスト基礎テクニック
プログラミングコンテスト基礎テクニックプログラミングコンテスト基礎テクニック
プログラミングコンテスト基礎テクニック
 
RUPC 2019 Day3 G: Donuts Orientation
RUPC 2019 Day3 G: Donuts OrientationRUPC 2019 Day3 G: Donuts Orientation
RUPC 2019 Day3 G: Donuts Orientation
 
RUPC 2019 Day3 F: 赤黒そーるじぇむ
RUPC 2019 Day3 F: 赤黒そーるじぇむRUPC 2019 Day3 F: 赤黒そーるじぇむ
RUPC 2019 Day3 F: 赤黒そーるじぇむ
 

RUPC 2019 Day3 D: 矢