タイトル説明
Guohe銅AA、BBが目標点に移動する必要がボード上のポイントがあります。ルールを歩く死:ダウン、または右にすることができます。同時にボード上のCCポイントは馬、馬がジャンプや他の馬の制御点と呼ばれるすべてのポイントをステップアップポイントの他の側面があります。いわゆる「馬はGuohe銅を停止しました。」
チェス盤表現、AA点(0,0)(0,0)、BB点(n、m)は(n、m)は(NN、MMは2020以上ではないの整数である)座標、馬の同じ位置座標に必要ですアウト。
今、私たちは兵士歩く馬を段階的に行っていない、馬の位置が静止しているとして、AAポイントから死のBBポイントに到達するためのパスの数を計算するように依頼します。
入出力フォーマット
入力フォーマット:
4つのデータの列は、それぞれ、点の座標は、BB及び馬を調整します。
出力フォーマット:
すべてのパスの数を示すデータです。
サンプル入力と出力
入力サンプル#1:コピー
6633
の出力サンプル#1:コピー
6
説明
結果が重要になります!
ソリューション:うわー、私は実際にこの質問が書かれていない......通常の2次元DPの友人が、負の状況を考慮する必要があり、集団的変位は1.初期設定をする必要がありますANS [1] [0] = 1の代わりにANS [1] [1] = 1;長時間チェック!!!
コード:
#include <cstdioを> する#include <iostreamの> する#include <cmath> の#include <cstdlib> の#include <CStringの> する#include <アルゴリズム> のtypedef 長い 長LL。 使用して 名前空間はstdを、 LL×1、T1、X2、Y2; INT [F 29 ] [ 29 ]。 LL ANS [ 25 ] [ 25 ]。 INT メイン(){ CIN >> X1 >> T1 >> X2 >> Y2。 X1 ++; X2 ++; T1 ++; Y2 ++ ; F [X2] [Y2] = - 1 。1 ] [Y2- 2 ] = - 1 。 F [X2 - 2 ] [Y2- 1 ] = - 1 。 F [X2 - 2 ] [Y2 + 1 ] = - 1 。 F [X2 - 1 ] [Y2 + 2 ] = - 1 。 F [X2 + 1 ] [Y2- 2 ] = - 1 。 F [X2 + 2 ] [Y2- 1 ] = - 1 。 F [X2 + 2 ] [Y2 + 1 ] = - 1 。 F [X2+ 1 ] [Y2 + 2 ] = - 1 。 // ANS [1] [1] = 1。 ANS [ 1 ] [ 0 ] = 1 。 以下のために(int型 i = 1 ; iは= X1を<; iは++ ){ ための(int型 J = 1 ; J <= T1あり、j ++ ){ 場合(F [I] [J] == - 1 ) {ANS [I] [ J] = 0 ; 続け; } 他 {ANS [I] [J] =のANS [I- 1 ] [J] + ANS [I]、[J-1 ]。} // coutの<<年[I] [J]。 } // COUT << ENDL。 } Coutの << 年[X1] [T1]。 リターン 0 ; }