このコンテンツは、実際には非常に簡単です。。。
私たちは、再帰的なプロセスは非常に複雑であり、分析には明確にすることができない、いくつかの問題の再帰が発生します。
再帰:この時点では、良いことがあります。
例:
NOIP2017-PJ・予選:完璧なプログラムT3:
書式#include <iostreamの> 使用して 名前空間はstdを、 INTのN、M。 INT findans(整数 nは、INTのM){ 場合(N == 0)戻りM。 もし(M == 0)リターン N%3 。 戻り( - N findansを1、M) - findans(N、M - 1)+ findans(N - 1、M - 1 )。 } int型のmain(){ CIN >> N >> M。 COUT << findans(N、M)<<endl; リターン 0 ; }
入力:$ \ {テキスト5 6} $
あなたは再帰的なツリーを記述する場合、無い分の1以下のページが書かれていると推定されます。
それはそれを行うにはどのようにすべきですか?
我々は$ F_ {I、J} $は$ \テキスト結果{findans(i、j)は} $で定義し、その後、いくつかの明白な結論があるでしょう。
$のF_ {0、X}のx $、$のF_ = {Xを、0}のx%3 $を=
次に、漸化式が得られる:$ F_ {I、J} =のF_ {I-1、J} - F_を{I、J-1} + F_ {I-1、J-1} $
その後、我々は、すべての$ F_マトリックス、配信リリース$ F(n、m)は$缶に取り付けられ、{I、J} $を置くことができます。