解析**
在乙個m×n
m\times n
m×n的魔術棋盤中,每個格仔中均有乙個整數,當棋子走進這個格仔中,則此棋子上的數會被乘以此格仔中的數。乙個棋子從左上角走到右下角,只能向右或向下行動,請問此棋子走到右下角後,模(mo
d)
k(mod)k
(mod)k
可以為幾?
如以下2×3
2\times3
2×3棋盤:
3 4 4
5 6 6
棋子初始數為1
11,開始從左上角進入棋盤,走到右下角,上圖中,最後棋子上的數可能為288
,432
288,432
288,43
2或540
54054
0。所以當k=5
k = 5
k=5時,可求得最後的結果為:0,2
,3
0,2,3
0,2,3。
第一行為三個數,分別為m,n
,k(1
≤m,n
,k
≤100
)m,n,k (1 \le m,n,k \le 100)
m,n,k(
1≤m,
n,k≤
100)
以下m行,每行n個數,分別為此方陣中的數。
第一行為可能的結果個數
第二行為所有可能的結果(按公升序輸出)
2 3 5
3 4 4
5 6 6
3
0 2 3
一道很顯然的dfs題。記得記憶化!
#include
using
namespace std;
int m, n, k;
int map[
1001][
1001];
bool buc[
101]
;bool book[
1001][
1001][
1001];
boolin(
int x,
int y)
void
dfs(
int x,
int y,
int t)
dfs(x +
1, y, t)
;dfs
(x, y +
1, t);}
intmain()
}dfs(1
,1,1
);int ans =0;
for(
int i =
0;i < k;i++
) cout << ans << endl;
for(
int i =
0;i < k;i++
)return0;
}
P2049 魔術棋子
在乙個m n的魔術棋盤中,每個格仔中均有乙個整數,當棋子走進這個格仔中,則此棋子上的數會被乘以此格仔中的數。乙個棋子從左上角走到右下角,只能向右或向下行動,請問此棋子走到右下角後,模 mod k可以為幾?如以下2 3棋盤 3 4 4 5 6 6 棋子初始數為1,開始從左上角進入棋盤,走到右下角,上圖...
P2049 魔術棋子 題解
csdn同步 原題鏈結 簡要題意 在乙個 n times m 的魔術棋盤中,每個格仔中均有乙個整數,當棋子走進這個格仔中,則此棋子上的數會被乘以此格仔中的數。乙個棋子從左上角走到右下角,只能向右或向下行動,請問此棋子走到右下角後,模 k 可以為幾?原題題意足夠簡要了吧 n,m,k leq 100 考...
洛谷 P2049 魔術棋子
乙個比較簡單dp問題。我們先來分析一下題目,要找到所有的模的總數,首先可以想到,用dp i j 表示在 i,j 這個點所有的方案數。但是,這樣顯然不行。因為僅僅知道方案總數對求解下乙個狀態毫無幫助。那麼,我們就要記錄每乙個點所有可能的模。所以,我們用三維dp i j l 表示在 i,j 點是否能夠得...