SlideShare a Scribd company logo
1 of 12
Download to read offline
北大合宿 2019 Day2 F: MOD Rush
原案: tempura
問題文: tsutaj
解答: idsigma・tempura・tsutaj・tubuann
解説: tsutaj
2019 年 7 月 15 日
tsutaj HUPC 2019 Day2 F 2019/7/15 1 / 7
問題
MOD Rush
長さ N の正の整数列 A と、長さ M の正の整数列 B が与えられる
全ての (i, j) (1 ≤ i ≤ N, 1 ≤ j ≤ M) に対して、Ai を Bj で割った
あまりを計算し、その和を求めよ
制約
1 ≤ N, M ≤ 2 × 105
1 ≤ Ai, Bj ≤ 2 × 105
tsutaj HUPC 2019 Day2 F 2019/7/15 2 / 7
想定誤解法
O(NM) → Time Limit Exceeded
tsutaj HUPC 2019 Day2 F 2019/7/15 3 / 7
アプローチ
剰余のまま考察するのは扱いにくいので、問題を言い換えよう
そもそも剰余とは?
tsutaj HUPC 2019 Day2 F 2019/7/15 4 / 7
アプローチ
剰余のまま考察するのは扱いにくいので、問題を言い換えよう
そもそも剰余とは?
X を Y で割ったあまりを求めたいとする
X = pY + q の形で表すことができ、この時の q が剰余
p, q ∈ N ∪ {0}
0 ≤ q < Y
商が求められれば、X から商を Y 倍したものを引いて剰余が出せる
tsutaj HUPC 2019 Day2 F 2019/7/15 4 / 7
アプローチ
剰余のまま考察するのは扱いにくいので、問題を言い換えよう
そもそも剰余とは?
X を Y で割ったあまりを求めたいとする
X = pY + q の形で表すことができ、この時の q が剰余
p, q ∈ N ∪ {0}
0 ≤ q < Y
商が求められれば、X から商を Y 倍したものを引いて剰余が出せる
よって元の問題は次のように言い換えることができる
tsutaj HUPC 2019 Day2 F 2019/7/15 4 / 7
アプローチ
剰余のまま考察するのは扱いにくいので、問題を言い換えよう
そもそも剰余とは?
X を Y で割ったあまりを求めたいとする
X = pY + q の形で表すことができ、この時の q が剰余
p, q ∈ N ∪ {0}
0 ≤ q < Y
商が求められれば、X から商を Y 倍したものを引いて剰余が出せる
よって元の問題は次のように言い換えることができる
MOD Rush の言い換え
正の整数列 A, B に対し、以下の操作を高速に実行せよ
S ← M
∑
i Ai とおく
各 (i, j) に対して、p = ⌊Ai
Bj
⌋ を求め、S から p × Bj を引く
最終的に得られた S を出力
tsutaj HUPC 2019 Day2 F 2019/7/15 4 / 7
アプローチ
どうすれば商を高速に求められるか?
tsutaj HUPC 2019 Day2 F 2019/7/15 5 / 7
アプローチ
どうすれば商を高速に求められるか?
Bj をひとつ選びとったとき、Bj で割った商が p になるような Ai の
範囲は連続した区間になり、商の値によらず区間の長さは Bj
商が p であるような Ai は、p × Bj ≤ Ai < (p + 1) × Bj を満たすもの
Pi :=「A 内に登場した数の中で値が i 以下であるものがいくつあるか」
という配列を用意しておけば、範囲内にあるものは O(1) で数えること
ができる (いわゆる累積和)
tsutaj HUPC 2019 Day2 F 2019/7/15 5 / 7
アプローチ
どうすれば商を高速に求められるか?
Bj をひとつ選びとったとき、Bj で割った商が p になるような Ai の
範囲は連続した区間になり、商の値によらず区間の長さは Bj
商が p であるような Ai は、p × Bj ≤ Ai < (p + 1) × Bj を満たすもの
Pi :=「A 内に登場した数の中で値が i 以下であるものがいくつあるか」
という配列を用意しておけば、範囲内にあるものは O(1) で数えること
ができる (いわゆる累積和)
X = max Ai とおくと、試す区間の数は ⌈ X
Bj
⌉ 個
Bj が同じ値であればまとめて計算すれば良いことを考えると、B は
相異なるとみなしてよい
試すべき区間の数の合計は最大 ⌈X
1 ⌉ + ⌈X
2 ⌉ + · · · + ⌈ X
max Bi
⌉ 個
tsutaj HUPC 2019 Day2 F 2019/7/15 5 / 7
アプローチ
区間の数の合計は最大 ⌈X
1 ⌉ + ⌈X
2 ⌉ + · · · + ⌈ X
max Bi
⌉ ≈ X log X 個
調和級数と呼ばれるもの
よって全ての (i, j) に対して商を求め、和にすることは高速に可能
これを利用すると剰余の部分だけ残すことができ、元の問題も高速に
処理可能 → Accepted
tsutaj HUPC 2019 Day2 F 2019/7/15 6 / 7
Writer 解・統計
Writer 解
idsigma (C++・35 行・838 bytes)
tempura (C++・37 行・652 bytes)
tsutaj (C++・28 行・819 bytes)
tubuann (C++・63 行・1638 bytes)
統計
AC / tried: 27 / 67 (40.3 %)
First AC
On-site: Tampaku (93 min 54 sec)
On-line: ushitapunichiakun (8 min 16 sec)
tsutaj HUPC 2019 Day2 F 2019/7/15 7 / 7

More Related Content

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

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

写像 12 相
写像 12 相写像 12 相
写像 12 相
 
ACPC 2017 Day3 F: 掛け算は楽しい
ACPC 2017 Day3 F: 掛け算は楽しいACPC 2017 Day3 F: 掛け算は楽しい
ACPC 2017 Day3 F: 掛け算は楽しい
 
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 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: 矢
 

Recently uploaded

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 

Recently uploaded (9)

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 

HUPC 2019 Day2 F: MOD Rush