Submit Search
Upload
RUPC 2018 Day3 B: 階層的計算機 (Hierarchical Calculator)
•
0 likes
•
512 views
HCPC: 北海道大学競技プログラミングサークル
Follow
2018/3/28 立命館大学プログラミング合宿 Day3 (北大セット) B 問題 (Slideshare 上では日本語が表示されないため、ダウンロードしてご覧ください)
Read less
Read more
Technology
Report
Share
Report
Share
1 of 12
Download now
Download to read offline
Recommended
写像 12 相
写像 12 相
HCPC: 北海道大学競技プログラミングサークル
ACPC 2017 Day3 F: 掛け算は楽しい
ACPC 2017 Day3 F: 掛け算は楽しい
HCPC: 北海道大学競技プログラミングサークル
ACPC 2017 Day3 D: 優柔不断
ACPC 2017 Day3 D: 優柔不断
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 G: Restricted DFS
ACPC 2019 Day3 G: Restricted DFS
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 F: 部分文字列分解
ACPC 2019 Day3 F: 部分文字列分解
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 E: 総和の切り取り
ACPC 2019 Day3 E: 総和の切り取り
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 B: パフェ
ACPC 2019 Day3 B: パフェ
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 A: 間違い探し
ACPC 2019 Day3 A: 間違い探し
HCPC: 北海道大学競技プログラミングサークル
Recommended
写像 12 相
写像 12 相
HCPC: 北海道大学競技プログラミングサークル
ACPC 2017 Day3 F: 掛け算は楽しい
ACPC 2017 Day3 F: 掛け算は楽しい
HCPC: 北海道大学競技プログラミングサークル
ACPC 2017 Day3 D: 優柔不断
ACPC 2017 Day3 D: 優柔不断
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 G: Restricted DFS
ACPC 2019 Day3 G: Restricted DFS
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 F: 部分文字列分解
ACPC 2019 Day3 F: 部分文字列分解
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 E: 総和の切り取り
ACPC 2019 Day3 E: 総和の切り取り
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 B: パフェ
ACPC 2019 Day3 B: パフェ
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 A: 間違い探し
ACPC 2019 Day3 A: 間違い探し
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day2 G: 木
HUPC 2019 Day2 G: 木
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 E: ジャム
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day2 H: Revenge of UMG
HUPC 2019 Day2 H: Revenge of UMG
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day2 F: MOD Rush
HUPC 2019 Day2 F: MOD Rush
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day2 C: 串刺し
HUPC 2019 Day2 C: 串刺し
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 F: グリッドの番号
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 E: 最短経路の復元
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 D: 貪欲が最適?
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 C: 短絡評価
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 B: 自身の 2 倍
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 A: four tea
HUPC 2019 Day1 A: four tea
HCPC: 北海道大学競技プログラミングサークル
Convex Hull Trick
Convex Hull Trick
HCPC: 北海道大学競技プログラミングサークル
プログラミングコンテスト基礎テクニック
プログラミングコンテスト基礎テクニック
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 G: Donuts Orientation
RUPC 2019 Day3 G: Donuts Orientation
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 D: 矢
RUPC 2019 Day3 D: 矢
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 F: 赤黒そーるじぇむ
RUPC 2019 Day3 F: 赤黒そーるじぇむ
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 E: 往復文字列
RUPC 2019 Day3 E: 往復文字列
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 C: 約数ゲーム
RUPC 2019 Day3 C: 約数ゲーム
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 B: 括弧を語る数
RUPC 2019 Day3 B: 括弧を語る数
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 A: 情報検索
RUPC 2019 Day3 A: 情報検索
HCPC: 北海道大学競技プログラミングサークル
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
More Related Content
More from HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day2 G: 木
HUPC 2019 Day2 G: 木
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 E: ジャム
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day2 H: Revenge of UMG
HUPC 2019 Day2 H: Revenge of UMG
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day2 F: MOD Rush
HUPC 2019 Day2 F: MOD Rush
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day2 C: 串刺し
HUPC 2019 Day2 C: 串刺し
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 F: グリッドの番号
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 E: 最短経路の復元
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 D: 貪欲が最適?
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 C: 短絡評価
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 B: 自身の 2 倍
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 A: four tea
HUPC 2019 Day1 A: four tea
HCPC: 北海道大学競技プログラミングサークル
Convex Hull Trick
Convex Hull Trick
HCPC: 北海道大学競技プログラミングサークル
プログラミングコンテスト基礎テクニック
プログラミングコンテスト基礎テクニック
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 G: Donuts Orientation
RUPC 2019 Day3 G: Donuts Orientation
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 D: 矢
RUPC 2019 Day3 D: 矢
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 F: 赤黒そーるじぇむ
RUPC 2019 Day3 F: 赤黒そーるじぇむ
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 E: 往復文字列
RUPC 2019 Day3 E: 往復文字列
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 C: 約数ゲーム
RUPC 2019 Day3 C: 約数ゲーム
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 B: 括弧を語る数
RUPC 2019 Day3 B: 括弧を語る数
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 A: 情報検索
RUPC 2019 Day3 A: 情報検索
HCPC: 北海道大学競技プログラミングサークル
More from HCPC: 北海道大学競技プログラミングサークル
(20)
HUPC 2019 Day2 G: 木
HUPC 2019 Day2 G: 木
HUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 H: Revenge of UMG
HUPC 2019 Day2 H: Revenge of UMG
HUPC 2019 Day2 F: MOD Rush
HUPC 2019 Day2 F: MOD Rush
HUPC 2019 Day2 C: 串刺し
HUPC 2019 Day2 C: 串刺し
HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 A: four tea
HUPC 2019 Day1 A: four tea
Convex Hull Trick
Convex Hull Trick
プログラミングコンテスト基礎テクニック
プログラミングコンテスト基礎テクニック
RUPC 2019 Day3 G: Donuts Orientation
RUPC 2019 Day3 G: Donuts Orientation
RUPC 2019 Day3 D: 矢
RUPC 2019 Day3 D: 矢
RUPC 2019 Day3 F: 赤黒そーるじぇむ
RUPC 2019 Day3 F: 赤黒そーるじぇむ
RUPC 2019 Day3 E: 往復文字列
RUPC 2019 Day3 E: 往復文字列
RUPC 2019 Day3 C: 約数ゲーム
RUPC 2019 Day3 C: 約数ゲーム
RUPC 2019 Day3 B: 括弧を語る数
RUPC 2019 Day3 B: 括弧を語る数
RUPC 2019 Day3 A: 情報検索
RUPC 2019 Day3 A: 情報検索
Recently uploaded
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Recently uploaded
(10)
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
RUPC 2018 Day3 B: 階層的計算機 (Hierarchical Calculator)
1.
会津合宿 2018 Day
3 B: 階層的計算機 原案:鈴木 問題文:瀧澤 解答:瀧澤・杉江 解説:瀧澤 2018/03/28 瀧澤 B: 階層的計算機 2018/03/28 1 / 12
2.
問題概要 階層的計算機 a1, a2, .
. ., aN が与えられたとき、そのうちのいくつかを選んで掛け合わ せることを考えます。この積を最大たらしめるような添字のうちで、個 数最小で辞書順最小のものを求めてください。ただし、一つも選ばな かった場合の積は 1 であるとします。 制約 1 ≤ N ≤ 60 −2 ≤ ai ≤ +2 for 1 ≤ i ≤ N 瀧澤 B: 階層的計算機 2018/03/28 2 / 12
3.
解法 値を最大にしたい以上、+2 を掛けないことはありえない。 −2 は一つであれば掛けたくないが二つずつであれば掛けたい。 −2
が奇数個でも −1 があれば、−2 を全て掛けることができる −1 のうちで最も添字の小さいものを掛ける。 これにより、O(N) で解くことができました。 瀧澤 B: 階層的計算機 2018/03/28 3 / 12
4.
余談 当初、この問題には個数最小の制約はありませんでした。すなわち、積 を最大化するもののうち辞書順最小のものを求める問題でした。 実装が少々面倒になることが予想されたため設定を変えたのですが、簡 単になりすぎたかもしれません。B 問題は難易度調整が難しいですね。 元問題の解説 PDF
も書いてしまったので載せておきます。解いてもらえ たら嬉しいです。 瀧澤 B: 階層的計算機 2018/03/28 4 / 12
5.
方針・考察(元問題) 一旦辞書順のことは忘れて、積の最大値を考える。 積を最大化したいので、+2 は全て掛けたい。 単位元なので、+1 は全て掛けることにしておく。 0
は掛けない。 ひとつでも 0 を掛けると積は 0 になるが、これは何も掛けなかった場合 の値より小さいため。 −1 や −2 は合わせて偶数個掛けたい。−2 をできるだけ多く掛け たい。 瀧澤 B: 階層的計算機 2018/03/28 5 / 12
6.
想定解法(元問題) a1, a2, .
. ., aN の中に +2 が s 個、−1 が t 個、−2 が u 個あった場合、積 の最大値は以下のようになる。 { 2s · 2u if u mod 2 = 0 or t ≥ 1 2s · 2u−1 otherwise これを実現するように、掛け合わせる要素を考えればよい。 +2 の要素は s 個全て選ぶ。 −2 の要素は、上の条件に応じて先頭から u 個または u − 1 個選ぶ。 −1 および +1 の要素は次ページで述べるように辞書順を気にして 選ぶ。 瀧澤 B: 階層的計算機 2018/03/28 6 / 12
7.
想定解法(元問題) まず −1 の要素について考える。 u
mod 2 = 0 の場合 先頭から 2 個ずつ選んでいく。このときの添字を (i1, i2) とする。 i1 が既に選んだ要素(+2 か −2)の添字の最大値を超えない限り続ける。 u mod 2 = 1 かつ t ≥ 1 の場合 まず先頭の 1 つを選ぶ。 その後は u mod 2 = 0 の場合同様に 2 個ずつ選んでいく。 u mod 2 = 1 かつ t = 1 の場合 その 1 つを選ぶ。 瀧澤 B: 階層的計算機 2018/03/28 7 / 12
8.
想定解法(元問題) 次に +1 の要素について考える。 先頭から
1 個ずつ選んでいく操作を、その要素の添字が既に選んだ要素 (+2、−1、−2)の添字の最大値を超えない限り続ける。 以上の操作によって選ばれる添字の集合が辞書順最小となる。積が同じ 値であるとき、今までに選ばれた最大の添字より大きい添字は選ぶべき でないことと、今までに選ばれた最大の添字より小さい添字は選ぶべきで あるということに基づく。 この方針により、O(N) で解くことができた。 瀧澤 B: 階層的計算機 2018/03/28 8 / 12
9.
備考(元問題) 自明に 260 <
263 なので、実際に要素を全て掛け合わせたとしても符号 つき 64bit 整数に収まる。このことを利用した解法を生やしてもよい。 604 ≈ 1.3 × 107 なので、O(N4) 程度の DP を生やしてもよい。 前回の会津合宿の B 問題では、入力の上限値を大きくしたところ事故っ たので、今回は上限値を小さくして多様な解法を期待する流れとなった。 瀧澤 B: 階層的計算機 2018/03/28 9 / 12
10.
備考(元問題) 前述の想定解法において、絶対値の上限値が 2 であることは利用してい ない。絶対値が
3 以上の要素があった場合でも、与えられた要素たちを 「−2 以下」「−1」「0」「+1」「+2 以上」と分けることでほぼ同様に話を 進めることができる。 与えられた要素の中に −1 が存在せず、−2 以下の要素が奇数個あった場 合には、そのうちで絶対値が最小(複数ある場合はそのうち添字が最大) のものを除くことにし、それ以外のものは今回の解法と同様に選ぶ。 この方針により N ≤ 100,000 かつ |ai | ≤ 1018 でも解くことができる。 瀧澤 B: 階層的計算機 2018/03/28 10 / 12
11.
Writer 解(元問題) Writer 解 瀧澤:54
lines, 1152 bytes in C++ 杉江:60 lines, 1724 bytes in C++ 瀧澤 B: 階層的計算機 2018/03/28 11 / 12
12.
Writer 解と統計 Writer 解 瀧澤:8
lines, 278 bytes in Python3 瀧澤:166 lines, 808 bytes in Whitespace 杉江:35 lines, 855 bytes in C++ Acceptance / Submission 57.95 % (51 / 88) First Acceptance On-site:rupc OKA(00:15:13) On-line:tsm(00:08:34) 瀧澤 B: 階層的計算機 2018/03/28 12 / 12
Download now