zzulioj1894 985的方格难题(递推)
来源:互联网 发布:优步打车软件 编辑:程序博客网 时间:2024/05/29 19:26
Description
985走入了一个n * n的方格地图,他已经知道其中有一个格子是坏的。现在他要从(1, 1)走到(n, n),每次只可以向下或者向右走一步,问他能否到达(n,n)。若不能到达输出-1,反之输出到达(n,n)的方案数。
Input
第一行输入一个整数t,代表有t组测试数据。
每组数据第一行输入三个整数n,x,y,分别代表方格地图的大小以及坏掉格子的位置。
注:1 <= t <= 20,1 <= n <= 30,1 <= x,y <= n。
Output
若可以到达(n,n)则输出方案数对1e9 + 7取余的结果,反之输出-1。
Sample Input
2
2 1 2
2 2 2
Sample Output
1
985走入了一个n * n的方格地图,他已经知道其中有一个格子是坏的。现在他要从(1, 1)走到(n, n),每次只可以向下或者向右走一步,问他能否到达(n,n)。若不能到达输出-1,反之输出到达(n,n)的方案数。
Input
第一行输入一个整数t,代表有t组测试数据。
每组数据第一行输入三个整数n,x,y,分别代表方格地图的大小以及坏掉格子的位置。
注:1 <= t <= 20,1 <= n <= 30,1 <= x,y <= n。
Output
若可以到达(n,n)则输出方案数对1e9 + 7取余的结果,反之输出-1。
Sample Input
2
2 1 2
2 2 2
Sample Output
1
-1
思路:第一格标记为1,横竖递推,坏掉的格子pass掉,直到推到最后一格。
代码:
#include<stdio.h> #include<iostream> #include<algorithm> #include<string.h> #include<math.h> using namespace std; int ma=1e9+7; int main() { int t; scanf("%d",&t); while(t--) { int a[50][50]; memset(a,0,sizeof(a)); int n,q,w; scanf("%d%d%d",&n,&q,&w); if(q==n&&w==n||q==1&&w==1) printf("-1\n"); else { a[1][1]=1; a[q][w]=0; for(int i=1;i<=n;i++) for(int j=i;j<=n;j++) { if(i==j) { a[i][j]=(a[i][j]+a[i][j-1]+a[i-1][j])%ma; } else { a[i][j]=(a[i][j]+a[i][j-1]+a[i-1][j])%ma; a[j][i]=(a[j][i]+a[j-1][i]+a[j][i-1])%ma; } a[q][w]=0; } printf("%d\n",a[n][n]); } } return 0; }
0 0
- zzulioj1894 985的方格难题(递推)
- 985的方格难题
- 985的方格难题
- zzuli 1894 (985的方格难题)
- 1894: 985的方格难题
- 1894: 985的方格难题
- 1894: 985的方格难题
- zzuli1894: 985的方格难题
- zzuliOJ 1894:985的方格难题(规律)
- ZZULIOJ-1894-985的方格难题(动态规划)
- 【zzuliOJ】1894 - 985的方格难题(组合数学)
- ZZULIOJ-1894-985的方格难题(BFS&规律&DP)
- 【zzuli-oj】-985的方格难题(DP)
- HDU 2045 不容易系列之(3)—— LELE的RPG难题(三色涂方格问题详解)(递推)
- 【985系列】985的方格难题
- Problem C: 985的方格难题
- 【郑轻】[1894]985的方格难题
- ZZULI OJ 1894: 985的方格难题
- Problem F: 985的红绿灯难题
- leetcode:单链表之Remove Duplicates from Sorted List II
- 为什么公司要从Scala转到Go?
- shell脚本安装oracle
- 新版idea 运行maven web项目 配置
- zzulioj1894 985的方格难题(递推)
- VMware克隆虚拟机后的网络设置
- TCP/IP四层协议 TCP与UDP的区别
- warning:This application is modifying the autolayout engine from a background thread
- 支付宝上传RSA公钥
- shell安装mysql
- 编写一个后台项目流程
- SpannableString与SpannableStringBuilder
- thinkphp滚屏加载--无刷新动态加载数据技术的应用