デジタルDP
デジタルdpが
◦ 古典的なデジタルDpは統計的要件は桁数を制限に沿ったものです。
◦ 一般的な形式である:間隔を見つける[N、M] の制約満足F(1)、F (2)、F (3)ので、桁数がある
数。 条件 F(I) 数の大きさ、及び当該成分の数の一般的に独立。
◦ 一般的な問題に対処するための異なるバンドを十分に活用されている10 進とバイナリ桁DP 。
◦ 桁DP 部品は、一般的には非常に日常的ですが、デジタルでのいくつかのトピックDP のセット以外の
ゴージャスなコートは、時には我々はそれを見ることはできません。
> HDU3652
◦ 統計的区間 [1、n]が 含まれて '13' とダイ 13が ある 0 桁数。
◦ N <= 10 ^ 9
>ソリューション
自由を含む139915366 991 366
HDU3652はバージョン簡素化
◦を暴力ごとに番号を列挙し、その後、必然的に遅いを計算します。
◦ 私たちが最初に考える簡単な形式
◦ 統計区間 [1、n]は 含まれ 「3」 どのように多くの数字を。
◦ N X_1 = X_2 X_3 X_total X_4 ... .. 。 X_Iであるn個の下降iはビット数です。 総合計である
ビットの数。
◦ 私たちが考える降順のビット数を埋めるために続けた場合Y_1 Y_2 ... 。そこで問題は、実際にどのように依頼することです
プログラムは、少数を記入し、一つは(区間に対応するキャップの上限を満たす必要があります[1、N-] 対象満たすために、2)
他の制限にします。
◦ この事実よりは[1、n]は、よりに見えるのDP アップ。
◦は、第一と仮定するのk ビットY_K X_Kは!= 、その後、kは後のビットには上限はないが、状況が単純化されます。
◦ 以前の場合はyが表示されない3 :だから我々は見つけることができれば、 F [k]は[0] を表し、kは位置を後にしました
(記入して自由に)上限がありますが、記入しなければならない3 どのように多くの、(フロントは表示されません)埋める
プログラム番号を。
◦ フロントた場合、yはに登場3 我々は見つけることができるかどう,:ので、 [K] F [1] を表し、K ノー後のビット
上限値(記入する自由を)、表示されるように持っていなかった3つの制限を(フロントが登場)どのように多くの
種の数は、プログラムを埋めます。
◦はどこまず、我々は列挙できY_K!= X_Kが、その後、この1つは、列挙の数は、対応
のFは一緒に答えて、増加する総必要である ビットの数を* 10 回。これは、操作の数が少ないです。
◦ とF 列の合計サイズが小さい、 ビットの数* 2 。
◦ 境界 F [合計+ 1] [0] = 0、F [合計+ 1] [1] = 1、の転写複雑O(10)
◦ 全体の複雑
◦は、それの元のタイトルに戻りますか?
◦ 十分なオリジナルの列挙のように、それを変更する異なるどの列挙何もありません。
◦であるF ため複数の制約、変更する配列、そう状態の寸法を増加させることです。
◦は設定F [k]は[ があったかどうか、以前[13] いずれかがあるかどうかに[1] の数の前にそれらmod13 以上に相当
未満]、次いでこれを転送したり、これを埋めることができるものを列挙する。
>これらはされていないことを、私たちはそれを行っているだろうか!
◦ 書き込み方程式は彼の思考を撫で。
◦ 1 :統計間隔 [M、N] で4 と7 の数字は、どのように多くの同時に現れることができないのですか?
◦ 2 :あなたの間隔を与える[N、M]は、あなたの自由な間隔依頼する「62」または「4」の桁数を?
◦ 3 : bzoj1026 : 風が定義風数。 先行ゼロなしで、及び隣接する二つの数
少なくともだけ異なる2つの正の整数それが呼ばれる強風番号。 風はで、知りたいA とB のパケットの間
を含むA とB 、の総数風数?
達成するために>メモリ検索
◦を実際には、私たちは持っているDP 思考の自然なプロセスのは非常に明確であるが、一般的に私たちは気付いていない
という書き込みを。、結局のところ、かなりの数なので用サイクルは、予め設定されたサイクル、サイクル数の回答
リングは、単語の検索を覚えて、それから、カウント善意の多くを書くためにどのようなものです。
◦ 実際の数字でDPは、多くの場合、検索メモリを達成するための方法を使用しているされたものを呼び出すために何を求めている
、それがダウンし、オーバーと呼ばれ、再び忘れないでください次の時間を。
◦ 私たちは、テーマ上のコードを見て
◦ 私は 、いくつかの最初を表します。
◦ 州:上のか1 。
◦ 持っている:あるかどうかを13
◦ Kは:番号が追加されましたmod13の値を
◦ 答えることだけでなく、ダウンメモリの上限の上部に注意。
デジタルについてのDP 経験
◦ 1 :我々は持っている多くの時間を注意のn == 0 の特別な治療のために。
◦ 2 :あり通常尋ねる[、M N-]を、我々は見つける[N、1] - [1 、M-1] が、時にはmがある0 爆発します。そして、
質問の後にWA 時間。。。。。。ノーマル。。。。。
◦ 3 :すべてが含まれていることが必要49個の(合計、実際には、数字を- 含まれていない49個の数字を)。旧
二次元の限界を持っている必要があり、1の1は1つが前にそこにあるものである49 。しかし、後に
のみ、イエスに何を覚えておく必要があります。私はいくつかの良いを書くことができます。
◦ 4 :デジタル一般的な質問は、DP 、一部のルーチンですが、これはそれから「豪華というわけではありません
コート」や他のアルゴリズムと組み合わせる部分は何も脳ではありません。それを表示するには、デジタルテストすることであるDPを、
デジタルでどのように変化の問題が何であるかを見るためにDP アップ。
◦ 5。 : DP 初期化のmemsetがに設定されて-1 。設定することはできません0 !!!!!!時間があるので
、DPの値があるべき0 、前に計算されていない場合ので、我々は間違っている、新しい計算が
、それは希望TLE 。
◦ としてそこに書き込むことができません0 。
◦ 6 :それは検索のメモリであるので、剪定することができます!!!!フィージビリティ剪定!!
◦ 7 :注意強風の数、時々有数のとき0 にも覚えておく必要があります!!!
> Hdu3079
◦ シャフトをバランスさせるように位置し、大周り自体他のデジタル:タイトルの数がバランスで定義され
、重みとして小さな左右のバランスを達成するために、バランスシャフトの重量との距離、として(即ち、レバー原理レベル
バランス)。その後、間隔を[X、Y] 平衡の数の数。 (0≤X≤10 Y≤ 18です)
>ソリューション
◦ 桁のDP コースと様々なアルゴリズムを設定することができます。
◦ この列挙体の典型的な問題である+ デジタルDP 。
◦ 現在のレコード位置は、選挙はバランスシャフト、左ポール右の現在の残高選択しなかった場合はまず第一に、私はこの質問を感じる
ことが良好な転写を感じていないので、値マイナス右に重量バランスバーを。トピックの性質の分析は、見つけることができる
非0 数のみ(一から一)バランスシャフト(持つことができる0 最終的な特別な処理を除いた
ビット数があれば、その後、等の下)をDP 列挙バランスシャフトの外に、そしてちょうど計算します最後に違いがある
のかどうか0 だけで罰金。相互に排他的な法的の対応する各セットの中心軸ため
◦の注意0 特別な場合:すなわち、0がカウントされる数ビット、失われる可能性があります。
例:
> P2657 [SCOI2009]風数
> トピックの数P4317フローラ(bzoj3209)
> P4124 [CQOI2016]電話番号(bzoj4521)
概要