jjzjj

一本通1314:过河卒(Noip2002)

mcyyds 2023-03-28 原文

1314:【例3.6】过河卒(Noip2002)


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 22768     通过数: 9776

【题目描述】

棋盘上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<iostream>
#include<stdio.h>
using namespace std;
long long f[21][21]={0},g[21][21]={0};
int main()
{
    int n,m,cx,cy,i,j;
    scanf("%d %d %d %d",&n,&m,&cx,&cy);
    f[0][0]=1;//初始化出发点 
    g[cx][cy]=1;//标注C点
    //判断C可走的点是否越界 并标注 
    if(cx-2>=0&&cy-1>=0)g[cx-2][cy-1]=1; 
    if(cx-1>=0&&cy-2>=0)g[cx-1][cy-2]=1; 
    if(cx+1<=n&&cy-2>=0)g[cx+1][cy-2]=1; 
    if(cx+2<=n&&cy-1>=0)g[cx+2][cy-1]=1; 
    if(cx+2<=n&&cy+1<=m)g[cx+2][cy+1]=1; 
    if(cx+1<=n&&cy+2<=m)g[cx+1][cy+2]=1; 
    if(cx-1>=0&&cy+2<=m)g[cx-1][cy+2]=1; 
    if(cx-2>=0&&cy+1<=m)g[cx-2][cy+1]=1; 
    //初始化边界 
    for(i=1;i<=n;i++)
        if(g[i][0]==0) f[i][0]=f[i-1][0];
    for(i=1;i<=m;i++)
        if(g[0][i]==0) f[0][i]=f[0][i-1];
    //逐层递推 
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++){
            if(g[i][j]==1)f[i][j]=0;
            if(g[i][j]==0)f[i][j]=f[i-1][j]+f[i][j-1];
        }    
    printf("%lld",f[n][m]);
    return 0;
}

 

有关一本通1314:过河卒(Noip2002)的更多相关文章

  1. [已解决]2002-can‘t connect to server on 192.168.xx.xx(10061)MySQL数据库无法远程连接 - 2

    MySQL数据库无法连接到Linux系统中的MySQL服务器上,我来总结一下我踩过的坑吧,希望伙伴们能注意一下我使用的虚拟机和服务,数据库客户端链接工具VMdocker MySQL57navicat出现上面问题的原因一般有以下几种?1.Linux中的防火墙没有关闭关闭防火墙命令systemctlstopfirewall#临时关闭防火墙systemctldisablefirewall#永久关闭防火墙2.远程MySQL中的端口号和navicat上的端口号不一致使用以下命令登录到MySQL中dockerexec-itmysql/bin/bash 进入到容器内部登录MySQLmysql-u用户名-p密

  2. MySQL 错误 2002 (HY000) : Can't connect to local MySQL server through socket '/var/run/mysql.sock' in widows 7 - 2

    好吧,我问的问题可能看起来很愚蠢,但在过去的几天里它一直困扰着我。即使mysql安装文件夹包含在PATH中,我也无法从Windows命令行运行任何mysql命令。当我尝试执行mysql命令时,出现了上述错误。我尝试了几个mysql版本的安装/卸载,但都没有成功,并得到了同样的错误。即使从Windows7中完全卸载mysql后,我仍然遇到同样的错误。如果我在安装文件夹中打开cmd则没有问题,但在其他文件夹中打开cmd时会出现问题。 最佳答案 编辑OP通过删除现有的cygwin安装和mysql安装然后重新安装mysql和cygwin自己

  3. c++ - 找一本关于 windows C++ GUI 编程的书 - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我知道这个问题已经被问了很多,但我想找一本关于使用C++进行Windows编程的书,专门关注GUI。我拿起一本关于C++游戏编程的书,在开始时它涵盖了一些WindowsGUI编程。所以现在我希望能够更深入地了解这个主题。有什么建议吗?附言我说的是win32程序。

  4. windows - 在 Powershell 中为另一本地用户登录时触发的一次性计划任务 - 2

    我正在尝试创建一个一次性计划任务,该任务在本地用户登录时触发,而本地用户不是创建计划任务的用户。执行此操作的Powershell是什么?我在WinServer2012R2和Windows8.1上使用Powershellv3。我需要运行一行powershell的任务。 最佳答案 将我的评论移到答案中以便解决此问题。如果您要立即重新启动并以该用户身份登录,只需将其输入:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce然后下一个登录用户(任何用户)将启

  5. php - Symfony 4 Doctrine 无法从控制台工作 [2002] 没有这样的文件或目录 - 2

    我正在使用symfony4,在运行doctrine控制台命令时出现此错误:InAbstractMySQLDriver.phpline108:Anexceptionoccurredindriver:SQLSTATE[HY000][2002]Nosuchfileordirectory我认为这是因为连接有问题,但是当我运行应用程序时它可以毫无错误地访问数据库,所以我无法想象连接有什么问题。我能够通过手动创建数据库并使用继续工作phpbin/consoledoctrine:schema:create--dump-sql但这确实是不需要的,因为稍后当需要更新架构时,所有数据都将丢失,因为我需要重

  6. php - 正则表达式返回 true,但一本书的作者说它不应该 - 2

    阅读有关Regexp(TuxRadar)的PHP在线资源。根据作者的说法,以下内容不应将“aaa1”与模式匹配,因此返回false(0),但我得到true(1)。为什么?RegularExpressions 最佳答案 你确定那里不应该有尾随$吗?没有它,返回true很有意义——第一个[a-z]block匹配前2个a字符,[0-9]什么都不匹配,最后一个[a-z]匹配第三个a。尾随1被忽略。查看本书的链接,似乎那里确实有错误:Mustendwithalowercaseletter仅当正则表达式用$锚定到字符串的末尾时才成立。

  7. php - 出现错误 mysqli::real_connect(): (HY000/2002): 当我尝试在实时服务器上访问我的项目时没有这样的文件或目录 - 2

    这个问题在这里已经有了答案:mysqli_real_connect():(HY000/2002):Nosuchfileordirectory(19个回答)关闭3个月前。我已将我的网站上传到服务器,然后我尝试访问,但代码点火器向我返回错误,我找不到任何答案。为什么会这样?我的配置数据库设置如下:$db['default']=array('dsn'=>'','hostname'=>'localhost','username'=>'netservice','password'=>'*********','database'=>'valedastrutas','dbdriver'=>'mysq

  8. php - 使用学说的 Symfony 4 工作人员无法正常工作 : SQLSTATE[HY000] [2002] Connection timed out - 2

    我正在使用带有Symfony4Messenger组件的worker。这个worker是接收消息(来自rabbitMQ)启动ffmpeg对视频进行处理并在数据库中保存一些东西。为了在Symfony上配置这个worker,我已经这样做了(中间件很重要)://config/packages/framework.yamlframework:messenger:buses:command_bus:middleware:#eachtimeamessageishandled,theDoctrineconnection#is"pinged"andreconnectedifit'sclosed.Usef

  9. 【华为OD机试真题 java、python、c++、JsNode】士兵过河||、士兵过河(100%通过+复盘思路) - 2

    代码请进行一定修改后使用,本代码保证100%通过率。本文章提供java、python、c++、jsNode四种代码。复盘思路在文章的最后题目描述一支N个士兵的军队正在趁夜色逃亡,途中遇到一条湍急的大河。敌军在T的时长后到达河面,没到过对岸的士兵都会被消灭。现在军队只找到了1只小船,这船最多能同时坐上2个士兵。 1.当1个士兵划船过河,用时为a[i];0  2.当2个士兵坐船同时划船过河时,用时为max(a[j],a[i])两士兵中用时最长的 3.当2个士兵坐船1个士兵划船时,用时为a[i]*10;a[i]为划船士兵用时。  4.如果士兵下河游泳,则会被湍急水流直接带走,算作死亡。请帮忙给出一种

  10. 【100%通过率 】华为OD真题c++/python 【羊、狼、农夫过河】【 2022 Q4 | 200分】 - 2

    华为OD机试-题目列表2023Q1点这里!!2023华为OD机试-刷题指南点这里!!题目描述羊、狼、农夫都在岸边,农夫有一艘容量固定的船,要求求出不损失羊情况下将全部羊和狼运到对岸需要的次数。农夫在或农夫离开后羊的数量大于狼的数量时狼不会攻击羊。只计算农夫去对岸的次数,回程时农夫不会运送羊和狼。输入描述第一行输入为M,N,X,分别代表羊的数量,狼的数量,小船的容量。输出描述输出不损失羊的情况下将全部羊和狼运到对岸需要的最小次数(若无法

随机推荐