当前位置: 首页 > news >正文

蓝桥杯17. 机器人塔

机器人塔

原题目链接

题目描述

X 星球的机器人拉拉队有两种服装:AB

这次他们表演的是“搭机器人塔”,类似下图:

      AB BA B AA A B BB B B A BA B A B B A

组塔规则:

  • A 只能站在 AABB 的肩上;
  • B 只能站在 ABBA 的肩上。

输入描述

一行两个整数 M, N0 < M, N < 500),分别表示 A 服和 B 服机器人的人数。输入保证人数合理,即存在至少一种合法搭塔方式。


输出描述

输出一个整数,表示可以搭成的合法塔的总数(即花样数量)。


输入样例

1 2

输出样例

3

c++代码

#include<bits/stdc++.h>using namespace std;typedef long long ll;ll M, N, k, ans = 0;
vector<char> recoder;ll dp(ll m, ll n) {vector<char> last = recoder, now(last.size() - 1);ll contm = 0,contn = 0;for (ll i = 0; i < k - 1; i++) {for (ll j = 0; j < now.size(); j++) {now[j] = last[j] == last[j + 1] ? 'A' : 'B';if (now[j] == 'A') contm++;else contn++;if (contm > m || contn > n) return 0;}last = now;now.pop_back();}return 1;
}void dfs(int m, int n) {if (recoder.size() == k) {ans += dp(M - m, N - n);return;}if (m <= M) recoder.push_back('A'), dfs(m + 1, n), recoder.pop_back();if (n <= N) recoder.push_back('B'), dfs(m, n + 1), recoder.pop_back();
}int main() {cin >> M >> N;k = (int)(sqrt(2 * (M + N) + 0.25) - 0.5);dfs(0, 0);cout << ans;return 0;
}//by wqs

思路解析

纯暴力题,枚举最后一层出现的情况,看这种情况合不合理就行。

相关文章:

  • 机器人雅克比Jacobian矩阵程序
  • leetcode-排序
  • 【鸿蒙HarmonyOS】深入理解router与Navigation
  • 从边缘到云端,如何通过时序数据库 TDengine 实现数据的全局洞
  • C语言五子棋项目
  • 【PostgreSQL教程】PostgreSQL 特别篇之 语言接口连接Perl
  • 体积小巧的 Word 转 PDF 批量工具
  • VMware中CentOS 7虚拟机设置固定IP(NAT模式)完整教程
  • HarmonyOS 是 Android 套壳嘛?
  • ubantu18.04(Hadoop3.1.3)Hive3.1.2安装指南
  • C++算法(15):INT_MIN/INT_MAX使用指南与替代方案
  • 网络原理 - 6
  • ActiveMQ 核心概念与消息模型详解(一)
  • 数据结构的学习(1)二分查找,利用二分查找找局部最小值,选择排序,冒泡排序,插入排序,位运算的基础知识
  • Java虚拟机面试题:JVM调优
  • Vue3 小功能记录:密码的显示与隐藏功能
  • 实时数仓体系概览与架构演进
  • LeetCode-47. 全排列 II
  • Kafka集群
  • Flutter 学习之旅 之 flutter 使用 【验证码】输入组件的简单封装
  • 著名哲学家、中山大学哲学系原系主任李锦全逝世
  • 印控克什米尔26名游客遭恐袭丧生后,印度对巴宣布多项反制措施
  • 【社论】高度警惕AI谣言对网络空间的污染
  • 中国建设银行原党委委员、副行长章更生严重违纪违法被开除党籍
  • 五一节,和人民照相馆一起找回“拍照”的仪式感
  • 外媒:特朗普称或将“大幅降低”对中国的关税