[NOIP2002]过河卒 标准递归

简介: [NOIP2002]过河卒 标准递归

题目地址

登录—专业IT笔试面试备考平台_牛客网

输入输出描述

如果没有马存在 就是一个经典的递归题

// Dduo
// Bhu Bigdata 1421
package Dduo;
import java.util.*;
// Eslipse IDE 2020-08
// JDK 1.8
// 2024/5/21
 
public class Main  {
    static Scanner sc=new Scanner(System.in);
    static int cnt=0;
    public static void main(String[] args) {
      //过河卒
      //b
      int n=sc.nextInt();
      int m=sc.nextInt();
      //马
//      int x=sc.nextInt();
//      int y=sc.nextInt();
      //递归
      rec(n,m);
      
      System.out.print(cnt);
    }
    public static void rec(int x, int y) {
      //递归出口
      if(x<0||y<0)return;
      //递归式
      else {
        if(x==0&&y==0)cnt++;
        else {
          rec(x-1,y);
          rec(x,y-1);
        }
      }
    }
 }

递归解法

// Dduo
// Bhu Bigdata 1421
package Dduo;
import java.util.*;
// Eslipse IDE 2020-08
// JDK 1.8
// 2024/5/21
 
public class Main  {
    static Scanner sc=new Scanner(System.in);
    //计数器
    static int cnt=0;
    //马
    static int horse_X,horse_Y;
    static int x1,y1;
    static int x2,y2;
    static int x3,y3;
    static int x4,y4;
    static int x5,y5;
    static int x6,y6;
    static int x7,y7;
    static int x8,y8;
    public static void main(String[] args) {
      //过河卒
      //b
      int n=sc.nextInt();
      int m=sc.nextInt();
      //马
      horse_X=sc.nextInt();
      horse_Y=sc.nextInt();
      
      x1=horse_X+1;y1=horse_Y-2;
      x2=horse_X+2;y2=horse_Y-1;
      x3=horse_X+2;y3=horse_Y+1;
      x4=horse_X+1;y4=horse_Y+2;
      x5=horse_X-1;y5=horse_Y+2;
      x6=horse_X-2;y6=horse_Y+1;
      x7=horse_X-2;y7=horse_Y-1;
      x8=horse_X-1;y8=horse_Y-2;
      
      //递归
      rec(n,m);
      
      System.out.print(cnt);
    }
    public static void rec(int x, int y) {
      //递归出口
      //跑出棋盘
      if(x<0||y<0)return;
      //马的控制范围
      if(x==horse_X&&y==horse_Y)return;
      if(x==x1&&y==y1)return;
      if(x==x2&&y==y2)return;
      if(x==x3&&y==y3)return;
      if(x==x4&&y==y4)return;
      if(x==x5&&y==y5)return;
      if(x==x6&&y==y6)return;
      if(x==x7&&y==y7)return;
      if(x==x8&&y==y8)return;
      //递归式
      if(x==0&&y==0)cnt++;
        else {
          rec(x-1,y);
          rec(x,y-1);
        }
      }
 }

目录
相关文章
|
移动开发 JavaScript 前端开发
atom-shell: GitHub 开源的跨平台桌面应用框架(基于 Node.js 和 HTML 5)
atom-shell是 GitHub 随 Atom 一起开源的跨操作系统(Windows,Linux,MacOS X)的利用 Web 技术(Node.js、JavaScript、HTML 5)开发桌面应用的框架。Atom即构建在 atom-shell 之上。
1032 0
atom-shell: GitHub 开源的跨平台桌面应用框架(基于 Node.js 和 HTML 5)
antd-procomponent中编辑表格动态数据设置的使用
antd-procomponent中编辑表格动态数据设置的使用
709 0
|
Java 数据库连接 数据格式
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
IOC/DI配置管理DruidDataSource和properties、核心容器的创建、获取bean的方式、spring注解开发、注解开发管理第三方bean、Spring整合Mybatis和Junit
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
【洛谷 P1002】[NOIP2002 普及组] 过河卒 题解(递归+记忆化搜索)
`NOIP2002`普及组的过河卒问题是一个棋盘路径计数挑战。卒从$(0,0)$出发到$(n,m)$,只能向下或向右移动,马在$(c1,c2)$固定,控制某些点。任务是计算不受马阻挡的路径数。输入是目标和马的位置,输出是路径总数。使用动态规划和记忆化搜索避免重复计算,样例输入$(6,6,3,3)$输出$6$。代码中定义了$f(x,y)$计算$(x,y)$处的路径数,利用边界条件和递推关系计算。
268 0
|
机器学习/深度学习 自然语言处理 决策智能
ICML 2024:大语言模型预训练新前沿:最佳适配打包重塑文档处理标准
【5月更文挑战第27天】ICML 2024 提出大语言模型预训练新方法——最佳适配打包,解决文档截断问题,提高模型性能和可靠性。此方法通过优化组合,保留完整上下文,减少信息丢失,在阅读理解等任务上表现卓越。实验显示,不同尺寸和序列长度的模型使用此方法后,下游任务性能提升,幻觉现象减少。尽管计算资源需求增加,但该方法对预训练技术的改进具有重要意义。[论文链接](https://arxiv.org/pdf/2404.10830)
359 1
|
机器学习/深度学习 人工智能 自然语言处理
【热门话题】如何通过AI技术提升内容生产的效率与质量
本文探讨AI技术如何提升内容生产的效率与质量。通过自然语言处理(NLP)实现智能摘要、自动写作和语言风格优化;计算机视觉用于图像识别和智能设计,提升视频与图像内容生产;数据分析与预测帮助精准洞察受众需求和预测内容趋势;AI推荐系统实现个性化信息流,优化用户体验。尽管AI带来变革,但需结合人类创意与伦理监督,以促进内容产业健康发展。
503 3
|
安全 算法 Linux
【专栏】Linux 服务器还有漏洞?OpenVAS 是一款开源的漏洞扫描工具,用于全面评估 Linux 服务器安全
【4月更文挑战第28天】OpenVAS 是一款开源的漏洞扫描工具,用于全面评估 Linux 服务器安全。它具有全面性、准确性和实时性的特点,能扫描各种设备并及时发现安全漏洞。使用 OpenVAS 包括安装、配置和执行扫描,以及分析结果并采取修复措施。在使用过程中应注意扫描时间、范围和策略的选择。通过定期检查和修复漏洞,结合其他安全措施,可以提升服务器安全性。OpenVAS 是保障 Linux 服务器安全的重要工具,但安全维护也需要持续学习和适应新挑战。
762 1
|
Java Maven 流计算
在Docker跑通Flink分布式版本的WordCount
在Docker跑通Flink分布式版本的WordCount
233 0
|
移动开发 JavaScript 前端开发
HTML5作业(二)-----扑克牌拖放小游戏
该实验旨在理解元素拖放、CSS定位和DOM操作,任务是创建一个扑克牌拖放游戏。用户需将A框内13张随机扑克牌(背面朝上)按顺序拖至B框,最多存5张。当B框内形成顺子时游戏结束,显示拖动次数。实验提供HTML结构及部分JavaScript代码,包括创建和乱序扑克牌、处理拖放事件等。
383 0
|
定位技术 Python
Python ArcPy将多个文件夹内大量遥感影像批量四等分裁剪或切割为N×M个部分
Python ArcPy将多个文件夹内大量遥感影像批量四等分裁剪或切割为N×M个部分
319 1
Python ArcPy将多个文件夹内大量遥感影像批量四等分裁剪或切割为N×M个部分