递推 4----7-4 sdut-C语言实验-马拦过河卒

简介: 递推 4----7-4 sdut-C语言实验-马拦过河卒

7-4 sdut-C语言实验-马拦过河卒


上一题


下一题


题目描述


7-4 sdut-C语言实验-马拦过河卒


分数 20


全屏浏览


作者 马新娟


单位 山东理工大学


棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。

棋盘用坐标表示,A点(0,0)、B点(n,m)(n,m为不超过15的整数),同样马的位置坐标是需要给出的。现在要

求你计算出卒从A点能够到达B点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步。

输入格式:

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

输出格式:

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

输入样例:

6 6 3 3

输出样例:

6


代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB


#include <stdio.h>
#include <stdlib.h>
 
int main()
{
   int i,j,n,m,a,b;
   scanf("%d %d %d %d",&n,&m,&a,&b);
   int f[20][20];
   int g[20][20];
   for(i=0;i<=n;i++)
   {
       for(j=0;j<=m;j++)
       {
           f[i][j]=0;
           g[i][j]=0;
       }
 
   }
   g[a][b]=1;
   g[a+1][b+2]=1;
   g[a+1][b-2]=1;
   g[a+2][b+1]=1;
   g[a+2][b-1]=1;
   g[a-2][b+1]=1;
   g[a-2][b-1]=1;
   g[a-1][b+2]=1;
   g[a-1][b-2]=1;
   f[0][0]=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]==0)
           {
               f[i][j]=f[i-1][j]+f[i][j-1];
           }
       }
   }
   printf("%d\n",f[n][m]);
 
    return 0;
}
目录
打赏
0
0
0
0
10
分享
相关文章
两个对象的 hashCode()相同,则值一定相同吗?面试篇(第三天)
两个对象的 hashCode()相同,则值一定相同吗?本文带大家回答这个问题。
767 1
两个对象的 hashCode()相同,则值一定相同吗?面试篇(第三天)
7-2 sdut-C语言实验-删数问题
7-2 sdut-C语言实验-删数问题
81 2
物联网发布者在发送数据时如何保证数据的安全性和完整性
数据加密、密钥管理和数据完整性验证是物联网安全的重要组成部分。对称加密(如AES)和非对称加密(如RSA)分别适用于大量数据和高安全需求的场景。密钥需安全存储并定期更新。数据完整性通过MAC(如HMAC-SHA256)和数字签名(如RSA签名)验证。通信协议如MQTT over TLS/SSL和CoAP over DTLS增强传输安全,确保数据在传输过程中的机密性和完整性。
7-9 sdut-C语言实验-商人小鑫
7-9 sdut-C语言实验-商人小鑫
80 1
7-4 sdut-C语言实验-区间覆盖问题
7-4 sdut-C语言实验-区间覆盖问题
95 2
Go vs Java:内存管理与垃圾回收机制对比
对比了Go和Java的内存管理与垃圾回收机制。Java依赖JVM自动管理内存,使用堆栈内存并采用多种垃圾回收算法,如标记-清除和分代收集。Go则提供更多的手动控制,内存分配与释放由分配器和垃圾回收器协同完成,使用三色标记算法并发回收。示例展示了Java中对象自动创建和销毁,而Go中开发者需注意内存泄漏。选择语言应根据项目需求和技术栈来决定。
|
9月前
|
C语言学习笔记-知识点总结上
C语言学习笔记-知识点总结上
167 1
基于Amlogic 安卓9.0, 驱动简说(五):基于GPIO、LED子系统的LED驱动
这篇文章是关于如何在基于Amlogic T972的Android 9.0系统上,使用GPIO和LED子系统来实现LED驱动的教程,包括了DTS设备树配置、驱动源码编写以及如何在用户空间控制LED的亮度和开关。
382 0
基于Amlogic 安卓9.0, 驱动简说(五):基于GPIO、LED子系统的LED驱动
ERP系统中的生产过程监控与质量管理解析
【7月更文挑战第25天】 ERP系统中的生产过程监控与质量管理解析
484 0
ERP系统中的生产过程监控与质量管理解析
教你在 Kubernetes 上部署 Redis 高可用集群?
教你在 Kubernetes 上部署 Redis 高可用集群?
476 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等