狠狠撸

狠狠撸Share a Scribd company logo
北大合宿 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: 北海道大学競技プログラミングサークル (20)

写像 12 相
写像 12 相写像 12 相
写像 12 相
HCPC: 北海道大学競技プログラミングサークル
?
ACPC 2017 Day3 F: 掛け算は楽しい
ACPC 2017 Day3 F: 掛け算は楽しいACPC 2017 Day3 F: 掛け算は楽しい
ACPC 2017 Day3 F: 掛け算は楽しい
HCPC: 北海道大学競技プログラミングサークル
?
ACPC 2019 Day3 F: 部分文字列分解
ACPC 2019 Day3 F: 部分文字列分解ACPC 2019 Day3 F: 部分文字列分解
ACPC 2019 Day3 F: 部分文字列分解
HCPC: 北海道大学競技プログラミングサークル
?
ACPC 2019 Day3 E: 総和の切り取り
ACPC 2019 Day3 E: 総和の切り取りACPC 2019 Day3 E: 総和の切り取り
ACPC 2019 Day3 E: 総和の切り取り
HCPC: 北海道大学競技プログラミングサークル
?
ACPC 2019 Day3 B: パフェ
ACPC 2019 Day3 B: パフェACPC 2019 Day3 B: パフェ
ACPC 2019 Day3 B: パフェ
HCPC: 北海道大学競技プログラミングサークル
?
ACPC 2019 Day3 A: 間違い探し
ACPC 2019 Day3 A: 間違い探しACPC 2019 Day3 A: 間違い探し
ACPC 2019 Day3 A: 間違い探し
HCPC: 北海道大学競技プログラミングサークル
?
HUPC 2019 Day2 G: 木
HUPC 2019 Day2 G: 木HUPC 2019 Day2 G: 木
HUPC 2019 Day2 G: 木
HCPC: 北海道大学競技プログラミングサークル
?
HUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 E: ジャムHUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 E: ジャム
HCPC: 北海道大学競技プログラミングサークル
?
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
HCPC: 北海道大学競技プログラミングサークル
?
HUPC 2019 Day2 C: 串刺し
HUPC 2019 Day2 C: 串刺しHUPC 2019 Day2 C: 串刺し
HUPC 2019 Day2 C: 串刺し
HCPC: 北海道大学競技プログラミングサークル
?
HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 F: グリッドの番号HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 F: グリッドの番号
HCPC: 北海道大学競技プログラミングサークル
?
HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 E: 最短経路の復元HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 E: 最短経路の復元
HCPC: 北海道大学競技プログラミングサークル
?
HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 D: 貪欲が最適?HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 D: 貪欲が最適?
HCPC: 北海道大学競技プログラミングサークル
?
HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 C: 短絡評価HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 C: 短絡評価
HCPC: 北海道大学競技プログラミングサークル
?
HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 B: 自身の 2 倍HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 B: 自身の 2 倍
HCPC: 北海道大学競技プログラミングサークル
?
HUPC 2019 Day1 A: four tea
HUPC 2019 Day1 A: four teaHUPC 2019 Day1 A: four tea
HUPC 2019 Day1 A: four tea
HCPC: 北海道大学競技プログラミングサークル
?
Convex Hull Trick
Convex Hull TrickConvex Hull Trick
Convex Hull Trick
HCPC: 北海道大学競技プログラミングサークル
?
プログラミングコンテスト基础テクニック
プログラミングコンテスト基础テクニックプログラミングコンテスト基础テクニック
プログラミングコンテスト基础テクニック
HCPC: 北海道大学競技プログラミングサークル
?
RUPC 2019 Day3 G: Donuts Orientation
RUPC 2019 Day3 G: Donuts OrientationRUPC 2019 Day3 G: Donuts Orientation
RUPC 2019 Day3 G: Donuts Orientation
HCPC: 北海道大学競技プログラミングサークル
?
RUPC 2019 Day3 D: 矢
RUPC 2019 Day3 D: 矢RUPC 2019 Day3 D: 矢
RUPC 2019 Day3 D: 矢
HCPC: 北海道大学競技プログラミングサークル
?

Recently uploaded (11)

狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
Matsushita Laboratory
?
LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3
LFDT Tokyo Meetup
?
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
harmonylab
?
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
sugiuralab
?
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
?
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
Matsushita Laboratory
?
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
?
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
sugiuralab
?
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
Matsushita Laboratory
?
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
Matsushita Laboratory
?
LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3
LFDT Tokyo Meetup
?
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
harmonylab
?
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
sugiuralab
?
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
?
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
Matsushita Laboratory
?
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
?
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
sugiuralab
?
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
Matsushita Laboratory
?

HUPC 2019 Day2 F: MOD Rush