hdu1978(記憶化搜尋)

來源:互聯網
上載者:User

標籤:des   style   blog   http   color   java   os   strong   

How many ways

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2762    Accepted Submission(s): 1630


Problem Description這是一個簡單的生存遊戲,你控制一個機器人從一個棋盤的起始點(1,1)走到棋盤的終點(n,m)。遊戲的規則描述如下:
1.機器人一開始在棋盤的起始點並有起始點所標有的能量。
2.機器人只能向右或者向下走,並且每走一步消耗一單位能量。
3.機器人不能在原地停留。
4.當機器人選擇了一條可行路徑後,當他走到這條路徑的終點時,他將只有終點所標記的能量。

如,機器人一開始在(1,1)點,並擁有4單位能量,藍色方塊表示他所能到達的點,如果他在這次直接選取中選擇的終點是(2,4)

點,當他到達(2,4)點時將擁有1單位的能量,並開始下一次直接選取,直到到達(6,6)點。
我們的問題是機器人有多少種方式從起點走到終點。這可能是一個很大的數,輸出的結果對10000模數。 

 

Input第一行輸入一個整數T,表示資料的組數。
對於每一組資料第一行輸入兩個整數n,m(1 <= n,m <= 100)。表示棋盤的大小。接下來輸入n行,每行m個整數e(0 <= e < 20)。 

 

Output對於每一組資料輸出方式總數對10000模數的結果. 

 

Sample Input16 64 5 6 6 4 32 2 3 1 7 21 1 4 6 2 75 8 4 3 9 57 6 6 2 1 53 1 1 3 7 2 

 

Sample Output3948  
 1 #include<stdio.h> 2 #include<string.h> 3 int n,m; 4 int map[110][110]; 5 int dp[110][110]; 6 int dfs(int x,int y) 7 { 8     int sum=0,i,j; 9     if(x==n&&y==m)10         return 1;11     if(dp[x][y]>=0)12         return dp[x][y];13     for(i=0; i<=map[x][y]; i++)14         for(j=0; j<=map[x][y]; j++)15         {16             if((i+j)<=map[x][y]&&i+x<=n&&j+y<=m&&(i+j)!=0)17             {18                 sum+=dfs(i+x,j+y);19                 sum%=10000;20             }21         }22     dp[x][y]=sum;23     return dp[x][y];24 }25 int main()26 {27     int t,i,j;28     scanf("%d",&t);29     while(t--)30     {31         scanf("%d%d",&n,&m);32         for(i=1; i<=n; i++)33             for(j=1; j<=m; j++)34                 scanf("%d",&map[i][j]);35         memset(dp,-1,sizeof(dp));36         printf("%d\n",dfs(1,1));37     }38     return 0;39 }
View Code

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.