递归递推练习 L
来源:互联网 发布:java tochararray用法 编辑:程序博客网 时间:2024/06/15 14:30
代码:
#include <bits/stdc++.h>
using namespace std;
int a[21][21]= {0};
void soldier(){
int i, j, m, n, x, y;
cin >> n >> m >> x >> y;
if(true){
a[x][y]= -1;
if(x - 1 >= 0 && y - 2 >= 0) a[x-1][y-2]= -1;
if(x - 2 >= 0 && y - 1 >= 0) a[x-2][y-1]= -1;
if(x - 2 >= 0 && y + 1 <= m-1) a[x-2][y+1]= -1;
if(x - 1 >= 0 && y + 2 <= m-1) a[x-1][y+2]= -1;
if(x + 1 <= n && y + 2 <= m) a[x+1][y+2]= -1;
if(x + 2 <= n && y + 1 <= m) a[x+2][y+1]= -1;
if(x + 2 <= n && y - 1 >= 0) a[x+2][y-1]= -1;
if(x + 1 <= n && y - 2 >= 0) a[x+1][y-2]= -1;
}
for(i = 0; i <= n; i++){
for(j = 0; j <= m; j++)
{
if(a[i][j]== -1)
continue;
if(i == 0 && j == 0)
{a[i][j]= 1;
continue;
}
a[i][j]= 0;
if(j-1>= 0 && a[i][j-1]!= -1)
a[i][j]+= a[i][j-1];
if(i-1>= 0 && a[i-1][j]!= -1)
a[i][j]+= a[i-1][j];
if(a[i][j]== 0) a[i][j]= -1;
}
}
if(a[n][m]==-1) cout<< 0;
else cout << a[n][m];
}
int main(){
soldier();
return 0;
}
分析:
将马的点和控制点设为-1,起始点设为1,然后判断周围是否为控制点,不是的话加一,是的话则为0;
- 递推递归练习 L
- 递推递归练习L
- 递归递推练习 L
- 递推递归练习L
- 递推递归练习 中的L题
- ACM递归递推练习 Problem L
- 递推递归-L
- 递推递归练习 L 马拦过河卒
- 递推递归练习L马拦过河卒
- 递推递归练习--L(马拦过河卒)
- 递推递归练习 A
- 递推递归练习 B
- 递推递归练习 C
- 递推递归练习 E
- 递推递归练习 F
- 递推递归练习 G
- 递推递归练习 I
- 递推递归练习 J
- selenium多进程
- 用Go开发WeChat接口
- hdu 1242 Rescue
- 指针申请空间
- Andriod studio 中配置Vitamio
- 递归递推练习 L
- Ubuntu下安装MySQL及简单操作
- 1860 最大数 (string 类)
- Swift数据类型(一)
- 反射之前奏Oracle简单版
- Android的事件分发机制
- (二)WI-FI辅助定位
- 递归递推练习 M
- 分析Linux内核创建一个新进程的过程