hdu 1208(简单dp)
生活随笔
收集整理的這篇文章主要介紹了
hdu 1208(简单dp)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:從[1,1]出發到[n,n],每次到達的格子都要按照格子里的數字走。問可以走到終點的數量是多少。
解題思路:簡單的遞推就可以了。。。
#include<iostream> #include<cstdio> #include<cstring> using namespace std;__int64 dp[40][40]; int n,map[40][40]; char str[40];int main() {while(scanf("%d",&n)!=EOF && n != -1){for(int i = 0; i < n; i++){getchar();scanf("%s",str);for(int j = 0; j < n; j++)map[i][j] = str[j] - '0';}memset(dp,0,sizeof(dp));dp[0][0] = 1;for(int i = 0; i < n; i++)for(int j = 0; j < n; j++){if(map[i][j] == 0 || dp[i][j] == 0) continue;if(i + map[i][j] < n) //未出界dp[i+map[i][j]][j] += dp[i][j];if(j + map[i][j] < n)dp[i][j+map[i][j]] += dp[i][j];}printf("%I64d\n",dp[n-1][n-1]);}return 0; }
總結
以上是生活随笔為你收集整理的hdu 1208(简单dp)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mybatis 学习之多数据源整合
- 下一篇: hdu 2881(简单dp)