南沙C信++奥赛陈老师解一本通题: 1314:【例3.6】过河卒(Noip2002)

 【题目描述】

棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上的某一点有一个对方的马(如C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点,如图3-1中的C点和P1,……,P8,卒不能通过对方马的控制点。棋盘用坐标表示,A点(0,0)、B点(n, m) (n,m为不超过20的整数),同样马的位置坐标是需要给出的,C≠A且C≠B。现在要求你计算出卒从A点能够到达B点的路径的条数。

【输入】

给出n、m和C点的坐标。

【输出】

从A点能够到达B点的路径的条数。

【输入样例】

8 6 0 4

【输出样例】

1617

 
#include <bits/stdc++.h>
using namespace std;
int h_d[9][2]={{0,0},{-1,-2},{1,-2},{-1,2},{1,2},{2,-1},{-2,-1},{2,1},{-2,1}};
int s_d[2][2]={{0,1},{1,0}};
long long a[100][100];
bool h[100][100];
long long ans=0;
using namespace std;
int n,m,ex,ey;
/*
void dfs(int x,int y)
{if(x==n&&y==m){ans++;return;}for(int i=0;i<2;i++){int nx=x+s_d[i][0]; int ny=y+s_d[i][1]; if(nx>=0&&nx<=n&&ny>=0&&ny<=m && a[nx][ny]==0 ) //可通行 dfs(nx,ny);			}
}*/
int main()
{cin>>n>>m>>ex>>ey;memset(a,0,sizeof(a));memset(h,false,sizeof(h));for(int i=0;i<9;i++){int nx = ex + h_d[i][0];int ny= ey + h_d[i][1];if(nx>=0&&nx<=n&&ny>=0&&ny<=m)h[nx][ny]=true;}//dfs(0,0);//实际上a[0][0]点可以有两种走法但初始化他为1 是因为a[0][1]的走法只有一种且等于a[0][0] 同理 a[1][0]的走法只有一种且 等行a[0][0]a[0][0]=1;for(int i=0;i<=n;i++){for(int j=0;j<=m;j++){	if(h[i][j]==true) //马的控制点 continue;if(i==0&&j==0)continue;else if(i-1>=0&&j-1>=0)a[i][j]=a[i][j-1]+a[i-1][j]; //当前的走法等 于左边或从上面走法之和 else if(i-1<0)  //边界只有上,没有左,即在第一列 a[i][j]=a[i][j-1];elsea[i][j]=a[i-1][j]; //边界只有左,没有上,即在最后行 }}		//cout<<ans<<endl;cout<<a[n][m];return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/794764.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT知识整合--数据库操作

不管是在哪使用数据库,终归是需要学习sql语言的,所以还没学的小伙伴建议打道回府先去把数据库学了再来看。我自己将QT中一些常用的数据库分为内部数据库和外部数据库。这所谓的内部数据库就是像“SQLite”这种大部分使用场景是嵌入式的,它将整个数据库存储在一个单一的文件中…

3.1 gradio的基本使用详解

gr.Text:用于文本输入,适用于自然语言处理任务的模型。 gr.Image:用于图像上传,适用于图像处理或计算机视觉模型。 gr.Audio:用于音频输入,适用于语音识别或音频处理模型。import gradio as grdef greet(name):return "Hello " + name + "!"demo = g…

WRF设置模式垂直层

翻译自WRF论坛https://forum.mmm.ucar.edu/threads/stretched-vertical-levels-information.14975/#post-37729设置模式垂直层​ Eta 层由 real 自动计算,基于namelist选项“e_vert.”所设置的层数。然而,完整的eta 层次可以由namelist选项“eta_levels.”来显式的指定。层次…

3.MR

MR一.MR概述1.mr定义Mr是一个分布式运算程序的编程框架,是用户开发”基于hadoop的数据分析应 用”的核心框架Mr核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整地 分布式运算程序,并发运行在一个hadoop集群上2.mr优缺点2.1.优点(1)易于编程.用户只关心业务逻辑…

4.MR(1)

2.mapreduce工作流程流程一流程二3.shuffle3.1.shuffle机制map方法之后,reduce方法之前的数据处理过程称之为shuffle3.2.分区3.3.writablecomparable排序(1)排序概述(2)排序分类3.4.combiner合并

5.MR(2)

4.输出数据outputformat接口实现类5.mapreduce内核源码解析5.1.maptask工作机制(1)read阶段:maptask通过inputformat获得的recordreader,从输出 inputsplit中解析一个个key/value5.2.reducetask工作机制5.3.reducetask并行度决定机制6.join6.1.reduce join6.2.map join7.数据清…

南京某大学入门知识

某大学入门知识一家之言,不必在意。 某高校文档镇楼https://github.com/SurviveSJTU/SurviveSJTUManual 地图 雷丁楼 楼主参加融媒体中心报名时,去过一次,其他时候没去过(雷丁学院,类似于与国外合作的专业) 东苑体育场 有体育馆,有室内羽毛球(二楼),击剑(二楼),健…

Python用MarkovRNN马尔可夫递归神经网络建模序列数据t-SNE可视化研究

原文链接:https://tecdat.cn/?p=37634 原文出处:拓端数据部落公众号 本文聚焦于利用马尔可夫递归神经网络(MarkovRNN)结合树库展开建模工作。MarkovRNN 通过整合马尔可夫特性与离散随机变量来深入探索递归神经网络中的随机转换机制,旨在高效处理具有复杂潜在信息的高度结…

CUDA

1、GPU准备 1、查看GPU类型 GeForce RTX 30602、查看算力https://en.wikipedia.org/wiki/CUDA#GPUs_supported算力8.63、确定CUDA Runtime 支持的CUDA SDK为11.1-12.54、查看驱动的Driver Version CUDA Version 为12.3所以适用的CUDA 11.1-12.3 2、更新显卡驱动 1、下载了最新显…

碳酸锂 短线

大周期:3分钟短线:

【LLM训练系列】从零开始训练大模型之Phi2-mini-Chinese项目解读

一、前言 本文主要是在复现和实践Phi2-mini-Chinese后,简要分析下Phi2-mini-Chinese这个项目,做一个学习实战总结。 原文发布于知乎:https://zhuanlan.zhihu.com/p/718307193,转载请注明出数。 Phi2-mini-Chinese简介 Phi2-Chinese-0.2B 从0开始训练自己的Phi2中文小模型,…

第20篇 window系统安装Redis流程

1.下载 Redis for Windows Redis 官方并没有提供 Windows 版本的安装包,但你可以使用 Microsoft 维护的 Windows 版本的 Redis。你可以从以下链接下载 Redis for Windows:2.安装 Redis 运行安装程序: 双击下载的 .msi 文件,启动安装程序。 按照安装向导的提示进行安装。这里…