題目:象棋中馬走「日」字型,以棋盤的左下角為原點,向上為y軸正方向,建立座標系。
牛牛想知道,棋盤左下角的馬,進過k次移動之後,落在座標(x, y)的情況有多少種。當任意一次移動後馬的位置不同時,兩種情況被認為不同。結果取模1000000007。
其中k<= 100000, 0<=x<=8,0<=y<=8。
輸入:
2 3 3
輸出:
2分析:
首先建立乙個vector儲存每一次移動的所有可能操作
vector< pair< int, int>> temp = ;
dp[i][a][b]表示i次移動後,馬位於座標(a,b)的情況數。
第i次到達(a,b),則n-1次必須到達(a+temp[i].first, b+temp[i].second),因此
dp[i][a][b] +=dp[i-1][a+temp[i].first][b+temp[i].second] 其中 i=0….7
#include
#include
#include
#define ll long long
using
namespace
std;
ll dp[10001][9][9];
vector
int, int>> temp = ;
long
long fun(int dx, int dy, int n) }}
}return dp[n][dx][dy];
}int main()
下象棋 爆搜 動態規劃
小樂樂一天天就知道玩,這一天又想玩象棋。我們都知道馬走日。現在給定乙個棋盤,大小是n m,把棋盤放在第一象限,棋盤的左下角是 0,0 右上角是 n 1,m 1 小樂樂想知道,乙個馬從左下角 0,0 開始,走了k步之後,剛好走到右上角 n 1,m 1 的方案數。輸入 多組樣例輸入,每組一行,三個整數n...
小樂樂下象棋(記憶化搜尋)
小樂樂一天天就知道玩,這一天又想玩象棋。我們都知道馬走日。現在給定乙個棋盤,大小是n m,把棋盤放在第一象限,棋盤的左下角是 0,0 右上角是 n 1,m 1 小樂樂想知道,乙個馬從左下角 0,0 開始,走了k步之後,剛好走到右上角 n 1,m 1 的方案數。輸入 多組樣例輸入,每組一行,三個整數n...
找到的不再是「在銀行裡下象棋的奧特曼」
框搜尋的核心是語義web 也就是基於語義的搜尋,可以通過乙個笑話來說明,有乙個笑話 一女子,開出徵婚條件有兩點.1.要帥 2.要有車 電腦去幫她搜尋 結果 象棋 這位女子,不服搜出的結果又輸入 1.要有漂亮的房子 2.要有很多錢 電腦去幫她再次搜尋的結果 銀行 此女子仍然不失望,繼續輸入條件 1要長...