在平面上有一些二维的点阵。

这些点的编号就像二维数组的编号一样,从上到下依次为第 11 至第 nn 行,从左到右依次为第 11 至第 mm 列,每一个点可以用行号和列号来表示。

现在有个人站在第 11 行第 11 列,要走到第 nn 行第 mm 列。

只能向右或者向下走。

注意,如果行号和列数都是偶数,不能走入这一格中。

问有多少种方案。

输入格式
输入一行包含两个整数 n,mn,m。

输出格式
输出一个整数,表示答案。

数据范围
1≤n,m≤301≤n,m≤30
输入样例1:
3 4
输出样例1:
2
输入样例2:
6 6
输出样例2:
0

//会超时
#include <stdio.h>int n, m;
int ans;void dfs(int x, int y)        // 搜索 (x, y)
{if(x>n||y>m)return ;if (x & 1 || y & 1)       // 如果至少存在一个点是奇数,那么搜索该点,否则跳过{if (x == n && y == m) // 如果搜到点 (n, m) 了{ans ++ ;          // ans ++ 并返回return ;}dfs(x + 1, y); dfs(x, y + 1);}
}int main()
{scanf("%d%d", &n, &m);dfs(1, 1);           // 从点 (1, 1) 开始搜索printf("%d\n", ans);return 0;
}
#include <stdio.h>int n, m;
int f[31][31];        // 记忆化数组int dfs(int x, int y) // 搜索点 (x, y),并返回从点 (x, y) 开始,能到点 (n, m) 的路径数量
{if (x & 1 || y & 1){if (f[x][y]) return f[x][y];         // 如果该点已经被搜索过,那么不再处理// 否则说明没搜索过,需要搜索一遍if (x < n) f[x][y] += dfs(x + 1, y);if (y < m) f[x][y] += dfs(x, y + 1);}return f[x][y];// 最后返回 f[x][y] 即可。如果 x, y 都是偶数,那么 f[x][y] 就没被处理过,必然为 0,可以不特判。
}int main()
{scanf("%d%d", &n, &m);f[n][m] = n & 1 || m & 1;  // 这里要特判下 n, m 是否都为偶数printf("%d\n", dfs(1, 1));return 0;
}

#include<bits/stdc++.h>
using namespace std;
const int N = 35;
int f[N+1][N+1];
int n,m;void init(){f[1][1]=1;for(int i=1;i<=N;i++){for(int j=1;j<=N;j++){if(i==1&&j==1) continue;if(i&1||j&1) //行列至少有一个为奇数f[i][j]=f[i-1][j]+f[i][j-1];}}
}
int main(){cin>>n>>m;init();cout<<f[n][m]<<endl;return 0;
}

蓝桥杯省赛 走方格(多种方法)相关推荐

  1. 2016蓝桥杯省赛---java---B---6(方格填数)

    题目描述 方格填数 思路分析 全排列+检查 代码实现 package com.atguigu.TEST;import static java.lang.Math.abs;class Main{stat ...

  2. 2017蓝桥杯省赛---java---A---4(方格分割)

    题目描述 思路分析 dfs 题目要求沿着格子的边线剪成两个部分,仔细观察,剪开的边线是关于中心点(3,3)对称的,于是我们从(3,3)开始搜索,直到搜到边界则退出.需要注意的是要从(3,3)点开始向两 ...

  3. 2018蓝桥杯省赛---java---B---2(方格计数)

    题目描述 思路分析 圆的对称性 代码实现 package com.atguigu.TEST;class Main{public static void main(String[] args) {int ...

  4. 第十三届蓝桥杯模拟赛第二期JAVA组个人题解

    第十三届蓝桥杯模拟赛第二期JAVA组个人题解 文章目录 第十三届蓝桥杯模拟赛第二期JAVA组个人题解 题目1 题目2 题目3 题目4 题目5 题目6 题目7 题目8 题目9 题目10 题目1 小蓝的I ...

  5. 小唐开始刷蓝桥(五)2016年第七届C/C++ B组蓝桥杯省赛真题

    文章目录 前言 一.煤球数目 二.生日蜡烛 三.凑算式 四.快速排序 五.抽签 六.方格填数 七.剪邮票 八.四平方和 九.交换瓶子 十.最大比例 上一篇: 小唐开始刷蓝桥(四)2017年第八届C/C ...

  6. 第十三届蓝桥杯模拟赛(第二期)试题与题解 C++

    第十三届蓝桥杯模拟赛(第二期)试题与题解 1.试题A [问题描述] ​ 小蓝的IP地址为 192.168. * .21,其中 * 是一个数字,请问这个数字最大可能是多少 ? 题解 IP地址由四个字节组 ...

  7. 2016第七届蓝桥杯省赛C/C++ B组试题解析整理

    引言 今天是蓝桥杯省赛举办的日子,是一个很激动人心的时刻,也是我第一次参加蓝桥杯,从上午9点到下午1点,做题时间历经4个小时,想想就过瘾. 下面整理一下这次比赛的题目. *注:此处为了省事儿,全是用J ...

  8. 第14届蓝桥杯省赛真题剖析-2023年5月7日Scratch编程初级组

    [导读]:超平老师的<Scratch蓝桥杯真题解析100讲>已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第135讲. 第14届蓝桥杯Scratch省赛真题,这 ...

  9. C/C++描述 第十一届蓝桥杯省赛 C/C++ 大学C组 第一场(2020.7.5) 题目+题解

    C/C++描述 第十一届蓝桥杯省赛 第一场(2020.7.5) 题目+题解   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓 ...

最新文章

  1. java.net.SocketException四大异常解决方案
  2. Hibernate 主键维护策略和hibernate 常见的映射类型
  3. Android 图形系统
  4. 面向对象笔试题练习一
  5. 正则表达+验证 [记录]
  6. Java性能最后一个领域:去除垃圾回收器
  7. MS印象-----北京.Net俱乐部8.13活动
  8. AI智能电话机器人源码搭建原理及步骤
  9. 网络安全--通过握手包破解WiFi(详细教程)
  10. smartupload 路径不存在_使用SmartUpload上传文件不成功
  11. 宝塔面板+PM2布署nodejs
  12. Deep Reinforcement Learning : An Overview(Yuxi Li) 学习笔记
  13. 因为迁移,所以出卖(1)
  14. 生物特征识别性能的不同衡量标准以及python源代码
  15. [iOS]ARC下循环引用的问题
  16. jQuery如何根据元素值删除数组元素
  17. 图书借阅java设计报告_JAVA课程设计报告图书借阅系统.pdf
  18. 智能温度系统(C51+DS18B20温度传感器+LM016L显示屏)
  19. Mockoon代理模式
  20. sas统计学习笔记(四)

热门文章

  1. 当button具有disabled属性时,el-tooltip也失效。解决办法
  2. 青岛租房 不知道租哪儿,手动做的租房地图。
  3. 马云登陆雅虎首次发表演讲稿全文。
  4. macbook新建html文件,New File Creation: 给 Mac 加上“新建文件菜单”
  5. 计算机的ip地址和用户名和密码是什么原因,电脑的ip地址账户和密码忘记怎么办...
  6. Python学习 | 2021-11-05 Scipy聚类色彩提取
  7. 又有黑科技啦,让老照片还原成彩色!ColouriseSG深度学习上色工具
  8. itunes无法安装到win7系统更新服务器,win7系统无法安装itunes应用程序的解决方案...
  9. TVP周年庆:“用科技影响世界”,一起出发!
  10. Js push整个数组