SlideShare a Scribd company logo
1 of 12
Download to read offline
会津合宿 2018 Day 3
B: 階層的計算機
原案:鈴木
問題文:瀧澤
解答:瀧澤・杉江
解説:瀧澤
2018/03/28
瀧澤 B: 階層的計算機 2018/03/28 1 / 12
問題概要
階層的計算機
a1, a2, . . ., aN が与えられたとき、そのうちのいくつかを選んで掛け合わ
せることを考えます。この積を最大たらしめるような添字のうちで、個
数最小で辞書順最小のものを求めてください。ただし、一つも選ばな
かった場合の積は 1 であるとします。
制約
1 ≤ N ≤ 60
−2 ≤ ai ≤ +2 for 1 ≤ i ≤ N
瀧澤 B: 階層的計算機 2018/03/28 2 / 12
解法
値を最大にしたい以上、+2 を掛けないことはありえない。
−2 は一つであれば掛けたくないが二つずつであれば掛けたい。
−2 が奇数個でも −1 があれば、−2 を全て掛けることができる
−1 のうちで最も添字の小さいものを掛ける。
これにより、O(N) で解くことができました。
瀧澤 B: 階層的計算機 2018/03/28 3 / 12
余談
当初、この問題には個数最小の制約はありませんでした。すなわち、積
を最大化するもののうち辞書順最小のものを求める問題でした。
実装が少々面倒になることが予想されたため設定を変えたのですが、簡
単になりすぎたかもしれません。B 問題は難易度調整が難しいですね。
元問題の解説 PDF も書いてしまったので載せておきます。解いてもらえ
たら嬉しいです。
瀧澤 B: 階層的計算機 2018/03/28 4 / 12
方針・考察(元問題)
一旦辞書順のことは忘れて、積の最大値を考える。
積を最大化したいので、+2 は全て掛けたい。
単位元なので、+1 は全て掛けることにしておく。
0 は掛けない。
ひとつでも 0 を掛けると積は 0 になるが、これは何も掛けなかった場合
の値より小さいため。
−1 や −2 は合わせて偶数個掛けたい。−2 をできるだけ多く掛け
たい。
瀧澤 B: 階層的計算機 2018/03/28 5 / 12
想定解法(元問題)
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
想定解法(元問題)
まず −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
想定解法(元問題)
次に +1 の要素について考える。
先頭から 1 個ずつ選んでいく操作を、その要素の添字が既に選んだ要素
(+2、−1、−2)の添字の最大値を超えない限り続ける。
以上の操作によって選ばれる添字の集合が辞書順最小となる。積が同じ
値であるとき、今までに選ばれた最大の添字より大きい添字は選ぶべき
でないことと、今までに選ばれた最大の添字より小さい添字は選ぶべきで
あるということに基づく。
この方針により、O(N) で解くことができた。
瀧澤 B: 階層的計算機 2018/03/28 8 / 12
備考(元問題)
自明に 260 < 263 なので、実際に要素を全て掛け合わせたとしても符号
つき 64bit 整数に収まる。このことを利用した解法を生やしてもよい。
604 ≈ 1.3 × 107 なので、O(N4) 程度の DP を生やしてもよい。
前回の会津合宿の B 問題では、入力の上限値を大きくしたところ事故っ
たので、今回は上限値を小さくして多様な解法を期待する流れとなった。
瀧澤 B: 階層的計算機 2018/03/28 9 / 12
備考(元問題)
前述の想定解法において、絶対値の上限値が 2 であることは利用してい
ない。絶対値が 3 以上の要素があった場合でも、与えられた要素たちを
「−2 以下」「−1」「0」「+1」「+2 以上」と分けることでほぼ同様に話を
進めることができる。
与えられた要素の中に −1 が存在せず、−2 以下の要素が奇数個あった場
合には、そのうちで絶対値が最小(複数ある場合はそのうち添字が最大)
のものを除くことにし、それ以外のものは今回の解法と同様に選ぶ。
この方針により N ≤ 100,000 かつ |ai | ≤ 1018 でも解くことができる。
瀧澤 B: 階層的計算機 2018/03/28 10 / 12
Writer 解(元問題)
Writer 解
瀧澤:54 lines, 1152 bytes in C++
杉江:60 lines, 1724 bytes in C++
瀧澤 B: 階層的計算機 2018/03/28 11 / 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

More Related Content

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

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

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 D: 矢
RUPC 2019 Day3 D: 矢RUPC 2019 Day3 D: 矢
RUPC 2019 Day3 D: 矢
 
RUPC 2019 Day3 F: 赤黒そーるじぇむ
RUPC 2019 Day3 F: 赤黒そーるじぇむRUPC 2019 Day3 F: 赤黒そーるじぇむ
RUPC 2019 Day3 F: 赤黒そーるじぇむ
 
RUPC 2019 Day3 E: 往復文字列
RUPC 2019 Day3 E: 往復文字列RUPC 2019 Day3 E: 往復文字列
RUPC 2019 Day3 E: 往復文字列
 
RUPC 2019 Day3 C: 約数ゲーム
RUPC 2019 Day3 C: 約数ゲームRUPC 2019 Day3 C: 約数ゲーム
RUPC 2019 Day3 C: 約数ゲーム
 
RUPC 2019 Day3 B: 括弧を語る数
RUPC 2019 Day3 B: 括弧を語る数RUPC 2019 Day3 B: 括弧を語る数
RUPC 2019 Day3 B: 括弧を語る数
 
RUPC 2019 Day3 A: 情報検索
RUPC 2019 Day3 A: 情報検索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論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。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...論文紹介: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論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル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論文紹介: 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デバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。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...論文紹介: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論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

RUPC 2018 Day3 B: 階層的計算機 (Hierarchical Calculator)