递推思想 系列二

来源:互联网 发布:airlaunch 蜂窝数据 编辑:程序博客网 时间:2024/05/09 01:44

马拦过河卒

Problem Description

棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。棋盘用坐标表示,A点(0,0)、B点(n,m)(n,m为不超过15的整数),同样马的位置坐标是需要给出的。现在要求你计算出卒从A点能够到达B点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步。

Input

一行四个数据,用空格分隔,分别表示B点的坐标和马的坐标。

Output

一个数据,表示所有的路径条数。

Example Input

6 6 3 3

Example Output

6

~~~~~~~!!!

递推思想: 所在位置的路径等于左边一格的路径加上上边一格的路径。
#include<stdio.h>
int main()
{
    int n, m, x, y, i, j;
    int g[20][20] = {0};
    int f[20][20] = {0};
    int x1[9] = {0,1,2,-2,-1,-1,-2,2,1};
    int y1[9] = {0,2,1,1,2,-2,-1,-1,-2};
    scanf("%d %d %d %d", &n, &m, &x, &y);/*x 对应i,  y 对应 j*/
    g[x][y] = 1;/*马所在点*/
    for(i = 0; i < 9; i++)/*马所到的点*/
    {
        if(x1[i] + x >= 0 && x1[i] + x <= n && y1[i] + y >= 0 && y1[i] + y <= m)
            g[x1[i] + x][y1[i] + y] = 1;
    }
    for(i = 1; i <= n; i++)/*坐标原点纵向处理*/
    {
        if(g[i][0] != 1)
            f[i][0] = 1;
        else
        {
            for(; i <= n; i++)
                f[i][0] = 0;
        }
    }
    for(j = 1; j <= m; j++)/*坐标原点横向处理*/
    {
        if(g[0][j] != 1)
            f[0][j] = 1;
        else
        {
            for(; j <= m; j++)
                f[0][j] = 0;
        }
    }
    for(i = 1; i <= n; i++)
    {
        for(j = 1; j <= m; j++)
        {
            if(g[i][j] == 1)
                f[i][j] = 0;
            else
            f[i][j] = f[i][j - 1] + f[i - 1][j];
        }
    }
    printf("%d\n", f[n][m]);
    return 0;
}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 川航飞机票名字错了一个字怎么办 胜战本领怎么看走向战场怎么办 数数字油画你的颜料干了怎么办? 数字油画涂颜料涂错了怎么办 绝地求生模拟器注册已达上限怎么办 孕妇把番茄和虾一起吃了怎么办 4岁宝贝吃了玩具小电池怎么办 微信使用零钱需完善实名信息怎么办 两岁宝宝刷牙不会吐水怎么办 孩子牙龈上长了小牙怎么办 供暖公司未供暖却收取供暖费怎么办 两岁宝宝认知和语言能力低怎么办 蜡笔同步被对方发现删掉的怎么办 微信时间和手机时间不同步怎么办 孩子们家乡爱画美丽的也自己怎么办 娃把豆豆弄进鼻孔了怎么办 20岁了不知道自己该干什么怎么办 遇到一个新手买家恶意拍下怎么办 淘宝卖螃蟹有什么要求美工怎么办 淘宝衣服吊牌剪了想退货怎么办修 用图片在淘宝搜衣服搜不到怎么办 汽车黑塑料水砂纸磨的不平怎么办 sat报名要你填10位电话怎么办 手绘板连接电脑绘画有点迟钝怎么办 走路不小心滑了一下特尴尬怎么办 小孩子头撞了头发长不出来怎么办 小孩子头磕破了不长头发怎么办 晚上洗了冷水头早上头痛怎么办 头发洗了一天就油了怎么办 米诺地尔搽剂喷了头皮油怎么办 头发可以种植吗如果是秃顶怎么办 前额头发少怎么办如何使头发增多 头发又细又软又少怎么办 宝宝一岁了头发又少又黄怎么办 生完孩子头发掉的厉害怎么办 洗完头发后头发很蓬松怎么办 头发掉的厉害怎么办吃什么好得快 头发掉的很厉害怎么办吃什么好 我头发掉的厉害怎么办吃什么药 头发干枯毛躁掉发怎么办吃什么 最近洗头时头发掉的厉害怎么办