Submit Search
Upload
Joi模擬予選2013 6番解説
•
Download as PPTX, PDF
•
0 likes
•
669 views
D
DEGwer
Follow
Report
Share
Report
Share
1 of 13
Download now
Recommended
Sharp2sat
Sharp2sat
oupc
Four op
Four op
oupc
RUPC2017:Bの解説
RUPC2017:Bの解説
Takumi Yamashita
1
1
oupc
Donuts プロコンチャレンジ2014
Donuts プロコンチャレンジ2014
kuno4n
Sanpo
Sanpo
oupc
E : 解説
E : 解説
Takumi Yamashita
日本情報オリンピック旗(JOI Flag) 解説
日本情報オリンピック旗(JOI Flag) 解説
Kensuke Imanishi
Recommended
Sharp2sat
Sharp2sat
oupc
Four op
Four op
oupc
RUPC2017:Bの解説
RUPC2017:Bの解説
Takumi Yamashita
1
1
oupc
Donuts プロコンチャレンジ2014
Donuts プロコンチャレンジ2014
kuno4n
Sanpo
Sanpo
oupc
E : 解説
E : 解説
Takumi Yamashita
日本情報オリンピック旗(JOI Flag) 解説
日本情報オリンピック旗(JOI Flag) 解説
Kensuke Imanishi
by_knzk
by_knzk
knzk_hk
purely functional data structures 5.3 日本語での説明
purely functional data structures 5.3 日本語での説明
Tetsuro Nagae
Permutation
Permutation
oupc
Ml ch7
Ml ch7
Ryo Higashigawa
AtCoder Regular Contest 026 解説
AtCoder Regular Contest 026 解説
AtCoder Inc.
RUPC2017:M問題
RUPC2017:M問題
Takumi Yamashita
Cf219 d1e
Cf219 d1e
DEGwer
Cf219 d1d
Cf219 d1d
DEGwer
Good Sequences
Good Sequences
DEGwer
Escape from Stones
Escape from Stones
DEGwer
Escape from stones
Escape from stones
DEGwer
素数判定法
素数判定法
DEGwer
More Related Content
What's hot
by_knzk
by_knzk
knzk_hk
purely functional data structures 5.3 日本語での説明
purely functional data structures 5.3 日本語での説明
Tetsuro Nagae
Permutation
Permutation
oupc
Ml ch7
Ml ch7
Ryo Higashigawa
AtCoder Regular Contest 026 解説
AtCoder Regular Contest 026 解説
AtCoder Inc.
RUPC2017:M問題
RUPC2017:M問題
Takumi Yamashita
What's hot
(6)
by_knzk
by_knzk
purely functional data structures 5.3 日本語での説明
purely functional data structures 5.3 日本語での説明
Permutation
Permutation
Ml ch7
Ml ch7
AtCoder Regular Contest 026 解説
AtCoder Regular Contest 026 解説
RUPC2017:M問題
RUPC2017:M問題
More from DEGwer
Cf219 d1e
Cf219 d1e
DEGwer
Cf219 d1d
Cf219 d1d
DEGwer
Good Sequences
Good Sequences
DEGwer
Escape from Stones
Escape from Stones
DEGwer
Escape from stones
Escape from stones
DEGwer
素数判定法
素数判定法
DEGwer
More from DEGwer
(6)
Cf219 d1e
Cf219 d1e
Cf219 d1d
Cf219 d1d
Good Sequences
Good Sequences
Escape from Stones
Escape from Stones
Escape from stones
Escape from stones
素数判定法
素数判定法
Joi模擬予選2013 6番解説
1.
JOI模擬予選2013 6番解説 DEGwer
2.
問題概要 • 0~N-1までの整数をK個並べて、その積をmod N でMと合同にする方法は何通りあるか •
N<=10^12,K<=10^18
3.
想定TLE解法① • 素直にDP • DP[何個並べたか][いまの積は何か]をどんどん 更新していく •
O(N^2K) • テストケース1のみが解けて20点が得られる
4.
想定TLE解法② • 行列累乗を使う • 知らない人は蟻本を見てください •
O(N^3log K) • テストケース1と2が解け、40点が得られる
5.
想定TLE解法③ • 実は状態数が圧縮できる • 例えばmod
60の場合、先ほどの20点DPで、 DP[2][i]=DP[14][i]=DP[22][i]などとなるので、こ の状態が圧縮できる(これはDPの漸化式が等しい ことから明らか)
6.
想定TLE解法③ • では、どのようなときに状態数が圧縮できるか? • 「tとNの最大公約数が等しいようなもの」はす べてDPの漸化式が等しいので、同じ状態にでき る •
よって、Nの約数の個数通りの状態のみが存在 する
7.
想定TLE解法③ • Nの約数の個数はどれくらいか? • N<=10^12なるNに対しては、4032個の約数を 持つ97772875200が最大 •
Nの値に対してそれほど大きくならない
8.
想定TLE解法③ • この圧縮を用いる • これで行列累乗を行えば、テストケース1,2,4が 解けて60点が得られる
9.
想定解法 • 実は行列累乗をしなくてもよい • DP[p][q]:2^p個の整数を並べたときにその積を XとするとGCD(X,N)=qとなるような場合の数 •
と定義すると、列のマージはO((要素数)^2)でで きるので、全体でO((Nの約数の個数)^2log K)で このDPテーブルが計算できる
10.
想定解法 • このDPテーブルが計算できれば、あとは適当に マージするだけ • これで100点がとれる •
おめでとうございます
11.
注意すべきこと • Nの値は大きいので、オーバーフローに注意 • Nの約数同士を掛け算して状態遷移を求めるの もオーバーフローするので、掛ける数をa,bとす るとa,bがNの約数であることを利用し、 a*GCD(N/a,b)で求まる •
そのほかにもオーバーフローポイントがたくさ んあります
12.
非想定解法 • テストケースが弱いらしいので適当な解法でも 通るらしいです • ごめんなさい
13.
おわりに • かなり難しいと思います • これが解ける人は赤になれると思うのでなって、 どうぞ
Download now