SlideShare una empresa de Scribd logo
1 de 7
Descargar para leer sin conexión
C 問題 解説
原案,解説:えびちゃん
ACPC 2019, Day 3
C 問題 解説 原案,解説:えびちゃん
問題概要
{0, 1, . . . , 9} からなる順列 P と非負整数 D があり,長さが D の
桁数と等しい文字列 C を次のように作る.
D の上から i 桁目が j であるとき C の i 文字目は Pj である.
このとき,C の先頭には余分な 0 がつくこともある.
D を 109 + 7 で割った余り M と,文字列 C が与えられる.
D としてありうる整数が存在する場合はそれを復元し,なければ
-1 を出力せよ.1 ⩽ |C| ⩽ 105,0 ⩽ M < 109 + 7.
C 問題 解説 原案,解説:えびちゃん
考察
std::next_permutation を知っていますか?
順列 P を全通り試してみることを考える.
これは 10! = 3628800 通りある.
毎回 O(|C|) 時間かけて復元すると TLE しそう.
どうしよう?
C 問題 解説 原案,解説:えびちゃん
考察
各数字 i について,C 中の i を 1 に,それ以外を 0 に置き換えた
ものを 109 + 7 で割った余りを求め,これを f(i) としてメモして
おく.
例:C = 30386
0 → 01000, f(0) = 1000
3 → 10100, f(3) = 10100
6 → 00001, f(6) = 1
8 → 00010, f(8) = 10
各順列 P′ に対して
(∑9
i=0 f(i) · Pi
)
mod 109 + 7 を求め,それが
M と一致すれば OK.
C 問題 解説 原案,解説:えびちゃん
コーナーケース
leading-zero の扱いには注意.
先頭が 0 の解はだめ?
→ D = 0 のとき墜ちそう.
→ これのせいで一発 AC なし.
leading zero がある解を見つけた時点で -1 を出力?
→ 例:以下は両方 469 と合同.
0000000000000000469
6666666666666666809
C 問題 解説 原案,解説:えびちゃん
まとめ・計算量
O(|C| · |P|) 時間かけて f(0), f(1), . . . , f(9) を求める.
各順列の候補 P′ に対して O(|P′|) 時間で復元を行う.
全体の計算量は O(|C| · |P| + |P| · |P|!) = O(|P| · (|C| + |P|!)).
C 問題 解説 原案,解説:えびちゃん
終
制作・著作
いつもの
ジャッジ解
TAB: 40 行,813 bytes
rsk0315: 39 行,811 bytes
tsutaj: 50 行,1209 bytes
First acceptance
on-site: acpc_chunithm 13:02
online: lyrically 11:39
Acceptance rate: 27/90 (30.00%)
C 問題 解説 原案,解説:えびちゃん

Más contenido relacionado

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

Más de 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: 情報検索
 

Último

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
論文紹介: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
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/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
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/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.
 
論文紹介: 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
 
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.
 

Último (11)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介: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
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/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...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: 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
 
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日本語マニュアル
 

ACPC 2019 Day3 C: カニサル暗号

  • 1. C 問題 解説 原案,解説:えびちゃん ACPC 2019, Day 3 C 問題 解説 原案,解説:えびちゃん
  • 2. 問題概要 {0, 1, . . . , 9} からなる順列 P と非負整数 D があり,長さが D の 桁数と等しい文字列 C を次のように作る. D の上から i 桁目が j であるとき C の i 文字目は Pj である. このとき,C の先頭には余分な 0 がつくこともある. D を 109 + 7 で割った余り M と,文字列 C が与えられる. D としてありうる整数が存在する場合はそれを復元し,なければ -1 を出力せよ.1 ⩽ |C| ⩽ 105,0 ⩽ M < 109 + 7. C 問題 解説 原案,解説:えびちゃん
  • 3. 考察 std::next_permutation を知っていますか? 順列 P を全通り試してみることを考える. これは 10! = 3628800 通りある. 毎回 O(|C|) 時間かけて復元すると TLE しそう. どうしよう? C 問題 解説 原案,解説:えびちゃん
  • 4. 考察 各数字 i について,C 中の i を 1 に,それ以外を 0 に置き換えた ものを 109 + 7 で割った余りを求め,これを f(i) としてメモして おく. 例:C = 30386 0 → 01000, f(0) = 1000 3 → 10100, f(3) = 10100 6 → 00001, f(6) = 1 8 → 00010, f(8) = 10 各順列 P′ に対して (∑9 i=0 f(i) · Pi ) mod 109 + 7 を求め,それが M と一致すれば OK. C 問題 解説 原案,解説:えびちゃん
  • 5. コーナーケース leading-zero の扱いには注意. 先頭が 0 の解はだめ? → D = 0 のとき墜ちそう. → これのせいで一発 AC なし. leading zero がある解を見つけた時点で -1 を出力? → 例:以下は両方 469 と合同. 0000000000000000469 6666666666666666809 C 問題 解説 原案,解説:えびちゃん
  • 6. まとめ・計算量 O(|C| · |P|) 時間かけて f(0), f(1), . . . , f(9) を求める. 各順列の候補 P′ に対して O(|P′|) 時間で復元を行う. 全体の計算量は O(|C| · |P| + |P| · |P|!) = O(|P| · (|C| + |P|!)). C 問題 解説 原案,解説:えびちゃん
  • 7. 終 制作・著作 いつもの ジャッジ解 TAB: 40 行,813 bytes rsk0315: 39 行,811 bytes tsutaj: 50 行,1209 bytes First acceptance on-site: acpc_chunithm 13:02 online: lyrically 11:39 Acceptance rate: 27/90 (30.00%) C 問題 解説 原案,解説:えびちゃん