Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SRM573 Div1Hard Div2Hard 解説
Search
tozangezan
March 15, 2013
Technology
1
260
SRM573 Div1Hard Div2Hard 解説
解説です。上げなおしました。
tozangezan
March 15, 2013
Tweet
Share
More Decks by tozangezan
See All by tozangezan
SRM578 解説
tozangezan
0
270
Other Decks in Technology
See All in Technology
KubeCon + CloudNativeCon Japan 2025 Recap by CA
ponkio_o
PRO
0
280
Lazy application authentication with Tailscale
bluehatbrit
0
140
WordPressから ヘッドレスCMSへ! Storyblokへの移行プロセス
nyata
0
390
LangSmith×Webhook連携で実現するプロンプトドリブンCI/CD
sergicalsix
1
190
CursorによるPMO業務の代替 / Automating PMO Tasks with Cursor
motoyoshi_kakaku
2
870
さくらのIaaS基盤のモニタリングとOpenTelemetry/OSC Hokkaido 2025
fujiwara3
2
300
Glacierだからってコストあきらめてない? / JAWS Meet Glacier Cost
taishin
1
130
AI導入の理想と現実~コストと浸透〜
oprstchn
0
180
ハッカソン by 生成AIハッカソンvol.05
1ftseabass
PRO
0
170
ビズリーチが挑む メトリクスを活用した技術的負債の解消 / dev-productivity-con2025
visional_engineering_and_design
2
5.2k
PO初心者が考えた ”POらしさ”
nb_rady
0
180
fukabori.fm 出張版: 売上高617億円と高稼働率を陰で支えた社内ツール開発のあれこれ話 / 20250704 Yoshimasa Iwase & Tomoo Morikawa
shift_evolve
PRO
2
5.3k
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
How STYLIGHT went responsive
nonsquared
100
5.6k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
4 Signs Your Business is Dying
shpigford
184
22k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
17
950
Testing 201, or: Great Expectations
jmmastey
42
7.6k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Transcript
WolfPack(Div1 Hard) WolfPackDivTwo(Div2 Hard) 解説 SRM 573
問題概要 オオカミがn頭いて、最初(x[i],y[i])にい る それぞれのオオカミは1回の移動におい て、隣接するマスのうちのどれか1つに進 む M回移動したときにn頭すべてが同じ場所に
いた 移動の仕方は何通りあるか、1000000007で 割った余りを求めよ。
例(Example 2) 2回の移動で 真ん中に行か ないと…… 2回の移動で 真ん中に 行かないと… 余裕!
(2,0)以外に集まるこ とは出来ない(両端の どっちかが間に合わな い) 左右にいるオオカミは (2,0)に向かってまっ すぐ向かってくること は確定 真ん中のオオカミは1 回好きな方向に向か い、もどってくる
素朴な解法 DFSするだけ→O(4NM2)くらいだろうか、さすがに 間に合わない ということで、何かしらのDPをする。 最後に集まる場所をそれぞれのオオカミの移動は 別々に考えて、最後にそれらをすべて掛け合わせ ればよい。
→すると集まる場所はO(M2)くらい。それぞれ についてDPをするとO(MN)くらい、combinationを 計算するとO(N)だろう。これだとO(NM^2)。 これでDiv2のほうは通る。
満点解法に向けて(1) このような移動は…… こう考える!!
満点解法に向けて(2) 次に、(0,0)から各点に行く方法が何通りあるか を考えてみる。 (何も数字が書かれていないところはすべて0通りです)
満点解法に向けて(3) さっきの図を45度回転 させてみましょう!! 見た感じnCi*nCjみたいな感じになっている…?? →正しい (n+1)Ci*(n+1)Cj=(nCi+nC(i-1))(nCj+nC(j-1)) =nCi*nCj+nC(i-1)*nCj+nCi*nC(j-1) +nC(i-1)*nC(j-1)
なので、帰納法で証明できます オオカミごとに独立に動けるので掛け算する
満点解法 ということで、座標を45度回転させ、n点を平行 移動するときにそれぞれ何通りになるかを計算す ればよいです(この時点ではまだO(NM^2)) しかし、このときスライドするだけなので、 x1y1+x2y1+x3y1+x1y2+x2y2+x3y3 =(x1+x2+x3)(y1+y2) のように独立にもとめることで、計算量はO(MN)
にすることができ、これで通すことが出来ます。 また、nCk mod pは他にもよく出てくるので自分 で調べてください。JOI2011のKeycardsがおすす めです。
まとめ Div1 提出者数:11 正解者数:4 Div2 提出者数:47 正解者数:12
お疲れ様でした