#include<iostream> #include<cstdio> #include<cstring> #include<string> #include<cstdlib> #include<cmath> #include<algorithm> #include<queue> #include<vector> using namespace std; int map[150][150]; int dp[150][150]; int main() { int t,n,m; scanf("%d",&t); while(t--) { memset(dp,0,sizeof(dp)); dp[1][1] = 1; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { scanf("%d",&map[i][j]); if(map[i][j]==0)continue; for(int i2=i;i2<=i+map[i][j];i2++) { for(int j2=j;j2<=j+map[i][j];j2++) { if(i2==i && j2==j)continue; if(i2-i+j2-j <= map[i][j]) dp[i2][j2] += dp[i][j]%10000; } } } printf("%d\n",dp[n][m]%10000); } }
关于HDU-ACM集训队选拔以及HDU12月份校赛的安排 【比赛提醒】BestCoder 你报名了吗?(点击报名) 【科普】什么是BestCoder?如何参加? |
How many waysTime Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Description 这是一个简单的生存游戏,你控制一个机器人从一个棋盘的起始点(1,1)走到棋盘的终点(n,m)。游戏的规则描述如下: 点,当他到达(2,4)点时将拥有1单位的能量,并开始下一次路径选择,直到到达(6,6)点。 Input 第一行输入一个整数T,表示数据的组数。 Output 对于每一组数据输出方式总数对10000取模的结果. Sample Input 1 Sample Output 3948 Author xhd Source Recommend wangye |