我本來想dp的 可惜dp不出來 後來才知道是記憶化搜尋
至於那個返回的max_+1是因為 本來返回max_的 但是因為一開始代入dfs的引數是-1
所以就要+1
#include
#include
const int mod=1000000007;
int a[51][51];
int dp[51][51][13][13];
int n,m,k;
int dfs(int x,int y,int num,int max_)
else if(num==k)sum++;
return dp[x][y][num][max_+1]=sum;
}if(x+1<=n)
sum+=dfs(x+1,y,num,max_);
if(sum>=mod)sum%=mod;
}if(y+1<=m)
sum+=dfs(x,y+1,num,max_);
if(sum>=mod)sum%=mod;
}return dp[x][y][num][max_+1]=sum;
}int main()
}memset(dp,-1,sizeof(dp));
printf("%d\n",dfs(1,1,0,-1));
// for(int i=0;i<51;i++)
// }
// }
// for(int
i=0;i<51;i++)
// }
// dp[0][0][0][0]=1;
// for(int
i=0;i<=n;i++)
// printf("\n");
// }
// }
// }
// int ans=0;
// for(int i=0;i<=12;i++)
// printf("%d\n",dp[n][m][k][12]);
return 0;
}
藍橋杯 歷屆試題 地宮取寶
問題描述 x 國王有乙個地宮寶庫。是 n x m 個格仔的矩陣。每個格仔放一件寶貝。每個寶貝貼著價值標籤。地宮的入口在左上角,出口在右下角。小明被帶到地宮的入口,國王要求他只能向右或向下行走。走過某個格仔時,如果那個格仔中的寶貝價值比小明手中任意寶貝價值都大,小明就可以拿起它 當然,也可以不拿 當小...
藍橋杯 歷屆試題 地宮取寶
資源限制 時間限制 1.0s 記憶體限制 256.0mb 問題描述 x國王有乙個地宮寶庫。是n x m 個格仔的矩陣。每個格仔放一件寶貝。每個寶貝貼著價值標籤。地宮的入口在左上角,出口在右下角。小明被帶到地宮的入口,國王要求他只能向右或向下行走。走過某個格仔時,如果那個格仔中的寶貝價值比小明手中任意...
藍橋杯 歷屆試題 地宮取寶
x 國王有乙個地宮寶庫。是 n x m 個格仔的矩陣。每個格仔放一件寶貝。每個寶貝貼著價值標籤。地宮的入口在左上角,出口在右下角。小明被帶到地宮的入口,國王要求他只能向右或向下行走。走過某個格仔時,如果那個格仔中的寶貝價值比小明手中任意寶貝價值都大,小明就可以拿起它 當然,也可以不拿 當小明走到出口...