P1002 [NOIP2002 普及组] 过河卒

最近在洛谷刷题,决定用博客把自己的解题思路以及踩过的坑整理总结一下~

先来看看题目吧~

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

棋盘用坐标表示,AA 点 (0, 0)(0,0)、BB 点 (n, m)(n,m),同样马的位置坐标是需要给出的。

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

输入格式
一行四个正整数,分别表示 BB 点坐标和马的坐标。

输出格式
一个整数,表示所有的路径条数。

思路

刚拿到题的时候,有点不知道怎么做,只觉得要用动态规划,但是没有想好方程是怎么样的。
错得离谱的思路就不说了,说说还不错的思路。
定义一个数组用来存到该点的路径条数路径条数怎么得到呢?
往下看
因为只能向下或向右去走,所以到一个点只有通过它左边的路或上边的路
那么来了!!!
到某点的路径条数=到它左边点的条数+到它上面点的条数(前提是这两点都可到)
这时候我们想一想就可以得到动态规划方程
不过我这里倒是犯了一个错误,我想当然的把到边线上的点的路径条数默认成1了,虽然一般情况适用,可是当马的控制范围包含了某个边线上的点时,是WA了!
真正到边线上的点的路径条数应该是他的上一个点的条数(上边界就是它左边的点,左边姐就是它上边的点)

               if(i==0&&j>0)//上边界{a[i][j]=a[i][j-1];}else if(j==0&&i>0)//左边界{a[i][j]=a[i-1][j];}

那么还有一个特殊点,就是原点(起点),到它的路径条数是多少呢?
很明显,就是1

             if(i==0&&j==0)//原点a[i][j]=1;

剩下的点就是普通点了,到它们的路径条数当然就是到它左边点的条数+到它上面点的条数

             else{a[i][j]=a[i-1][j]+a[i][j-1];}

要注意!!我们讨论的这三类点都是在它可到达的情况下讨论的,也就是说不受马控制的点,那么怎么实现呢?
当然在外面加一层if判断就好了!
好了,到这里,方程就基本出来了,剩下的就看代码吧,呼呼~

#include <bits/stdc++.h>
using namespace std;int main()
{int n,m,p,q;//(n,m)终点  (p,q)马点long long a[30][30];//路径条数,之前这里用了int,总有两个测试数据不过//改成longlong就好了int map[30][30];//能不能走,马控制的点设为1,代表不能走cin>>n>>m>>p>>q;//马的控制区域,1代表此路不通map[p][q]=1;map[p-2][q-1]=1;map[p-2][q+1]=1;map[p+2][q+1]=1;map[p+2][q-1]=1;map[p-1][q-2]=1;map[p-1][q+2]=1;map[p+1][q+2]=1;map[p+1][q-2]=1;/* 嘤嘤嘤 这里就是错误代码了,异想天开的我,以为边线上的点一定可以到。。。for(int i=1;i<=n;i++){a[i][0]=1;}for(int i=1;i<=m;i++){a[0][i]=1;}*///动态规划求到各点的路数for(int i=0;i<=n;i++){for(int j=0;j<=m;j++){if(map[i][j])continue;else //不受马控制的点{if(i==0&&j==0)a[i][j]=1;else if(i==0&&j>0){a[i][j]=a[i][j-1];}else if(j==0&&i>0){a[i][j]=a[i-1][j];}else{a[i][j]=a[i-1][j]+a[i][j-1];}}}}cout<<a[n][m]<<endl;return 0;
}

over,这道题就结束了~~第一次写博客,如果有帮到大家,非常荣幸,写得不好,也请见谅,啦啦

P1002 [NOIP2002 普及组] 过河卒相关推荐

  1. 信息学奥赛一本通 1314:【例3.6】过河卒(Noip2002) | 1921:【02NOIP普及组】过河卒 | 洛谷 P1002 [NOIP2002 普及组] 过河卒

    [题目链接] ybt 1314:[例3.6]过河卒(Noip2002) ybt 1921:[02NOIP普及组]过河卒 洛谷 P1002 [NOIP2002 普及组] 过河卒 [题目考点] 1. 坐标 ...

  2. P1002 [NOIP2002 普及组] 过河卒(python3实现)

    [NOIP2002 普及组] 过河卒 - 洛谷 信息学奥赛一本通(C++版)在线评测系统 """1921:[02NOIP普及组]过河卒 http://ybt.ssoier ...

  3. NOIP 2002普及组 过河卒详解

    本文图片引用自"kcfzyhq"的博客 1.分析 首先我们来看看下面这个图,这个图基本表现了题目的意思:一个卒要从图的左上角A点走到右下角B点,而其中有一点C为马的位置,C与其周边 ...

  4. P1035 [NOIP2002 普及组] 级数求和(python3实现)

    [NOIP2002 普及组] 级数求和 - 洛谷 """P1035 [NOIP2002 普及组] 级数求和(python3实现)02 https://www.luogu. ...

  5. 信息学奥赛一本通 1919:【02NOIP普及组】选数 | 洛谷 P1036 [NOIP2002 普及组] 选数

    [题目链接] ybt 1919:[02NOIP普及组]选数 洛谷 P1036 [NOIP2002 普及组] 选数 [题目考点] 1.排列组合 2.深搜(子集树) 3.质数 [解题思路] 深搜(子集树) ...

  6. 洛谷——P1035 [NOIP2002 普及组] 级数求和

    P1035 [NOIP2002 普及组] 级数求和 题目描述 已知:S_n= 1+\frac{1}{2}+\frac{1}{3}+-+\frac{1}{n}S**n=1+21+31+-+n1.显然对于 ...

  7. P1035 [NOIP2002 普及组] 级数求和

    P1035 [NOIP2002 普及组] 级数求和 题目描述 已知:Sn=1+1/2+1/3+-+1/nS_n= 1+1/2+1/3+-+1/nSn=1+1/2+1/3+-+1/n.显然对于任意一个整 ...

  8. Java P1035 [NOIP2002 普及组] 级数求和 洛谷入门题

    P1035 [NOIP2002 普及组] 级数求和 题目描述 已知:Sn=1+1/2+1/3+-+1/nS_n= 1+1/2+1/3+-+1/nSn​=1+1/2+1/3+-+1/n.显然对于任意一个 ...

  9. NOIP2002普及组第一题【级数求和】题解 (普及山东tyd)

    一道水题,我就不想多说什么了. //题目洛谷链接  https://www.luogu.org/problemnew/show/P1035 //题目Openjudge链接  http://noi.op ...

最新文章

  1. suricata的简介以及安装过程
  2. 常见数据库的Connection URL
  3. 中文NER任务实验小结:BERT-MRC的再优化
  4. 在Windows 2003中集成RAID卡驱动
  5. php setcookie 过期,php cookie怎么设置过期时间?
  6. 基于百度AI+jquery-webcam+servlet实现人脸识别登录,兼容各主流浏览器
  7. python调用github_Python调用GithubAPI并进行初步的数据分析
  8. 常见的div盒子居中(上下左右)实现
  9. java之struts2的执行流程讲解(1)
  10. 软件工程导论 05章总体设计
  11. Mac 如何查看电脑的蓝牙版本信息
  12. 微信JS SDK网页接口
  13. 2021创新创业基础(李家华)100分期末考试答案
  14. 当Apple TV+的生态化反梦,撞上一个“日渐昂贵”的流媒体市场
  15. 调用html事件,HTML 事件
  16. MySQL 查询执行流程
  17. Android 车机初体验:Auto,Automotive 傻傻分不清楚?
  18. 程序员大佬教你如何用python制作中国象棋!一看就会
  19. 软件版本号规则和命名规则
  20. 格局,注定了你的层次和结局!

热门文章

  1. PT100转RS485热电阻Modbus低成本数据采集模块
  2. java人才市场需求分析_人才招聘需求及分析报告.doc
  3. android 延时拍照,手机如何延时拍摄 手机延时拍摄技巧有哪些
  4. ALSA子系统(十七)------支持Type-C耳机驱动
  5. 用python画小鸭_python中的鸭子类型(协议)和接口
  6. 求你了别秀了——Reversion Count
  7. NAACL 2022 | 具有元重加权的鲁棒自增强命名实体识别技术
  8. 【致远FAQ】致远OA宕机之DEE引发宕机
  9. 电脑公司GHOST WIN7 装机旗舰版 2013 09
  10. CSS——字体图标、平面转换、缩放