More Related Content
PDF
AtCoder Beginner Contest 010 解説 PDF
AtCoder Beginner Contest 007 解説 PDF
AtCoder Beginner Contest 022 解説 PDF
AtCoder Beginner Contest 030 解説 PDF
CODE FESTIVAL 2015 予選A 解説 PDF
AtCoder Beginner Contest 008 解説 PDF
PDF
AtCoder Beginner Contest 021 解説 What's hot
PPTX
PDF
AtCoder Beginner Contest 023 解説 PDF
AtCoder Beginner Contest 024 解説 PDF
AtCoder Beginner Contest 019 解説 PDF
AtCoder Regular Contest 042 解説 PDF
AtCoder Regular Contest 035 解説 PDF
AtCoder Beginner Contest 011 解説 PDF
PDF
AtCoder Beginner Contest 020 解説 PDF
AtCoder Beginner Contest 035 解説 PDF
PDF
PPTX
AtCoder Beginner Contest 012 解説 PDF
AtCoder Regular Contest 021 解説 PPTX
AtCoder Beginner Contest 002 解説 PDF
AtCoder Regular Contest 039 解説 PPTX
PDF
AtCoder Regular Contest 023 解説 PDF
AtCoder Beginner Contest 018 解説 PDF
AtCoder Beginner Contest 029 解説 Viewers also liked
PPTX
PDF
PPT
ERP Integration Associated with Top Problems PDF
PPTX
PDF
01 complejos resueltos_binomica PDF
Lotes leilao tradicao 2011 PDF
PPTX
ODP
PDF
Relatoria ponencia dr. nereo mendoza PDF
PPTX
Lit. info. + exercícios(correção) PDF
Harren Media Brasil - Harren Mobile PDF
Cartilhabonifcio 130729122429-phpapp01 PDF
Deputados aprovam prazo para laticínio informar preço do leite PPTX
PDF
Para print sem 21 al 25 de marzo - ioest PPTX
Evaluación inicial y manejo del paciente traumatizado PDF
Experiencias exitosas las_tic_para_la_apropiacion_social Similar to Code Formula 予選B 解説
PDF
CODE THANKS FESTIVAL 2014 A日程 解説 PDF
AtCoder Beginner Contest 015 解説 PDF
PDF
AtCoder Beginner Contest 033 解説 PDF
AtCoder Beginner Contest 006 解説 PPTX
PDF
PDF
AtCoder Beginner Contest 009 解説 PDF
AtCoder Regular Contest 032 解説 PDF
CODE FESTIVAL 2014 予選A 解説 PPTX
AtCoder Beginner Contest 004 解説 PPTX
AtCoder Beginner Contest 034 解説 PDF
姫路 IT 系勉強会 Vol.6 プログラミングコンテストという名のオンラインゲームがあるらしい PDF
PDF
PDF
PDF
HAPPY NEW YEAR 2017 コンテスト 解説 PDF
PDF
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder) PPTX
More from AtCoder Inc.
PPTX
PPTX
PDF
PDF
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説 PDF
PDF
AtCoder Regular Contest 049 解説 PDF
AtCoder Regular Contest 048 PDF
PDF
PDF
PDF
PDF
CODE FESTIVAL 2015 沖縄ツアー 解説 PDF
AtCoder Regular Contest 046 PDF
PDF
CODE FESTIVAL 2015 予選B 解説 PDF
AtCoder Regular Contest 045 解説 PDF
AtCoder Regular Contest 044 解説 PDF
AtCoder Beginner Contest 028 解説 PDF
天下一プログラマーコンテスト2015 予選B 解説 PDF
AtCoder Regular Contest 043 解説 Code Formula 予選B 解説
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
B問題 アルゴリズム
•一桁ごとに処理していく
–数字で扱うなら、10で割った余り
•BigIntegerなどの多倍長クラスが必要であることに注意
•10で割った余りで必要な数字を取り出す
•10で割ることで、次の数字に移動する
–文字列で扱うなら、後ろから何文字目か
•文字列Sとして、S[S.Length – 1 – k] のような感じ
•数字の0ではなく文字の’0’なので、S[k]-’0’のような処理が必要
•足し算が終われば、それぞれの値を出力するだけ
–偶奇を間違えないように!
2014/8/28
7 - 8.
- 9.
- 10.
- 11.
C問題 アルゴリズム
•3回のswapで文字列が同じになる
–つまり、変更する文字は最大6文字
–7文字以上が違っていた場合、明らかに不正解!
•これを利用して、探索範囲を減らそう!
–使っている文字の数が一致しない場合も不正解!
•A,Bで一致している文字は無視して良い?
–“ab”, “ab”のような、ケースで不正解になってしまう。
•3回ちょうどでなければならないため
2014/8/28
11 - 12.
C問題 アルゴリズム
•方針1:ちょうどの判定を行うにはどうしたら良い か?
–もし同じ文字がAの中に存在すれば、同じ文字を交換する ことで、時間稼ぎが出来る
–これを活用すると、「一致している文字の中でも、同じ文 字を2つ残しておけば、残りは排除して良い」
•残る文字数は、不一致6 + 一致26*2 = 58
•O(N^6)でも、不一致数などで枝刈をすれば十分間に合う
•方針2: 厳密には、以下のような処理で良い
–一致した文字を全て排除する
–元々の文字列Aに、同一文字が1つでも含まれていた3回 以下の探索、そうでなければ3回の探索を行う
2014/8/28
12 - 13.
- 14.
D問題 問題概要
•N種類の硬貨がある
•K番目の硬貨は10^(k-1)円である
•K番目の硬貨をA_k枚持ってる時、払える金額は何 パターン存在するか.10億7で割った余りを出力せよ
•制約
–1≦N≦50
–0≦A_K≦
2014/8/28
14 - 15.
D問題 アルゴリズム
•普通に全列挙するのは間に合わない。
•方針1:動的計画法を使って纏める
–各硬貨ごとに、「今見ている硬貨何枚分余計に払えるか」 を状態とし、それを満たすパターン数を調べる
•例えば26枚の1円があったとすると、10円を調べる時には、
–残り2枚分の自由度があるのが7パターン
»1の位が0,1,2,3,4,5,6の時
–残り1枚分の自由度があるのが3パターン
»1の位が7,8,9の時
•のように、何枚自由度があるパターンが何通りあるか、を動的計 画法で求める
–むずかしい!
•もっと簡単な方法が存在する!
2014/8/28
15 - 16.
D問題 アルゴリズム
•方針2:掛け算をしよう!
–入力例3
•{12, 3, 7, 34}という入力
•これを{12, 3} {7} {34}という風に分ける
–{12, 3} では、0円から42円までが表現可能 43通り
–{7}では、0~7 * 100円が表現可能 8通り
–{34}では、0~34 * 1000円が表現可能 35通り
•よって、パターン数は、43*8*35-1=12039通り、と求められる
–このように、幾つかのブロックに分けてあげると、独立に 計算可能!
•では、どのように分ければ良いか?
2014/8/28
16 - 17.
D問題 アルゴリズム
•方針2:掛け算をしよう!
–入力例3
•{12, 3, 7, 34}という入力
•これを{12, 3} {7} {34}という風に分ける
–{12, 3} では、0円から42円までが表現可能 43通り
–{7}では、0~7 * 100円が表現可能 8通り
–{34}では、0~34 * 1000円が表現可能 35通り
•よって、パターン数は、43*8*35-1=12039通り、と求められる
–このように、幾つかのブロックに分けてあげると、独立に 計算可能!
•では、どのように分ければ良いか?
2014/8/28
17 - 18.
D問題 アルゴリズム
•ブロックの分け方
–今見ている硬貨までの価値の和が、次の硬貨の価値に 達している場合
•具体例
–{13} (13円なので、次の10円よりも大きい)
–{12, 9} (102円なので、次の100円よりも大きい)
–{100, 0, 0} (100円なので、次の100円と等しい)
•などは、0~価値の合計までの金額を、全て表現可能
–次の硬貨の価値に達していない場合
•具体例
–{7}
–{9, 9}
•これは、次の硬貨に影響を与えないので、ブロックを分けてしまう
2014/8/28
18 - 19.
- 20.