【2024.10.22练习】机器人塔
题目描述

题目分析
由于数据小,直接考虑DFS搜索底层所有排列组合。
我的代码
需要注意:这个数据有点漏洞的是题干声明N+M<231,但实际上有个测试点是等于231的。
一开始在build_tower()函数中建完整个塔再判定是否合格,结果最大数据量下超时了。后面修改了函数,每添加一个机器人就判定一次是否合格,不合格直接退出函数,这样运行时间就在有效时长内了。因此对于时间复杂度在极限附近的程序,剪枝也是很有效的。
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
const int MAX_L=22;
int m; //A数量
int n; //B数量
int l; //层数:也是最底层的机器人数
bool bottom[MAX_L];//最底层机器人排列
bool tower[MAX_L][MAX_L];
//tower[i][j]表示第i层从左往右第j个机器人种类
int ans;
void build_tower(){//记录用于构筑的A,B数量int A=m;int B=n; //构建底层 for(int i=1;i<=l;i++){tower[l][i]=bottom[i]; if(!bottom[i]) A--;if(bottom[i]) B--;}//构建上层for(int i=l-1;i>0;i--){for(int j=1;j<=i;j++){tower[i][j]=tower[i+1][j]^tower[i+1][j+1]; //异或运算 if(!tower[i][j]) A--;if(tower[i][j]) B--;if(A<0||B<0) return;}}if(A==0&&B==0){ans++;//数量正确 }
}
void dfs(int a,int b,int x){//a,b为剩余A,B的数量 if(a<0||b<0||x>l) return;if(x==l){build_tower();return;}bottom[x+1]=0; dfs(a-1,b,x+1); //0代表Abottom[x+1]=1;dfs(a,b-1,x+1); //1代表B
}
int main()
{cin>>m>>n;for(int i=1;i<=21;i++){if(i*(i+1)/2==m+n){l=i;}}ans=0;dfs(m,n,0);cout<<ans;return 0;
}相关文章:
【2024.10.22练习】机器人塔
题目描述 题目分析 由于数据小,直接考虑DFS搜索底层所有排列组合。 我的代码 需要注意:这个数据有点漏洞的是题干声明NM<231,但实际上有个测试点是等于231的。 一开始在build_tower()函数中建完整个塔再判定是否…...
酒店预订订房小程序源码系统 多酒店入驻+打造类似美团的酒店模式 带完整的安装代码包以及搭建部署教程
系统概述 随着移动互联网的普及,小程序因其轻量级、无需下载安装、即用即走的特点,迅速成为各行业的标配。对于酒店预订行业而言,小程序不仅能够有效提升用户体验,还能降低运营成本,提高转化率。本源码系统正是基于这…...
springboot037基于SpringBoot的墙绘产品展示交易平台的设计与实现(论文+源码)_kaic
毕 业 设 计(论 文) 题目:墙绘产品展示交易平台设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本墙绘产品展示…...
YOLOv8实战人脸-口罩检测与识别【数据集+YOLOv8模型+源码+PyQt5界面】
本文采用YOLOv8作为核心算法框架,结合PyQt5构建用户界面,使用Python3进行开发。YOLOv8以其高效的实时检测能力,在多个目标检测任务中展现出卓越性能。本研究针对人脸-口罩数据集进行训练和优化,该数据集包含丰富的人脸-口罩图像样…...
《黑神话悟空》各章节boss顺序汇总
第一章BOSS顺序: 1、牯护院:犀牛精,位于苍狼岭娟,击败后能获得定身术。 2、广智:火刀狼, 位于观音禅院,击败后获得广智变身,记得敲钟。 3、蓝皮幽魂:蓝皮大头࿰…...
rust中cargo.toml详细介绍
1. cargo.toml介绍 Cargo.toml是 Rust 项目的配置文件,它使用 TOML(Tom’s Obvious, Minimal Language)格式。 1.1 基本结构 [package]:包含项目的基本信息。 name:项目名称。version:项目版本号。edition:Rust 版本,如 2018、2021 等。[package]name = "abc&q…...
jupyter notebook 笔记
nbclassic 经典版 新版的 jupyter notebook 太丑了。 最难受的是字体太小了。 我还是喜欢老版本的 jupyter notebook. 安装经典版: pip install nbclassic 启动经典版: jupyter server 或是 jupyter nbclassic 参考来源: https://github.com/jupyter/nbclassic jupyter note…...
Atlas800昇腾服务器(型号:3000)—CANN安装(二)
服务器配置如下: CPU/NPU:鲲鹏 CPU(ARM64)A300I pro推理卡 系统:Kylin V10 SP1【下载链接】【安装链接】 驱动与固件版本版本: Ascend-hdk-310p-npu-driver_23.0.1_linux-aarch64.run【下载链接】 Ascend-…...
考研鼓励小程序
考研冲刺倒计时,加入我们一起奋斗💥 考研倒计时提醒神器来啦! 距离考研越来越近,复习是否紧张又有些焦虑?不用担心!我特别制作了一个 考研倒计时提醒服务,每天在 7:00 和 23:59 准时为你发送倒…...
Wooden UI(木头UI纹理按钮边框 背景图标 带PNG素材)
资源包包含以下元素:按钮、图标、框架、复选框等,提供分层的 PSD 文件。 下载:Unity资源商店链接资源下载链接 效果图:...
WebRTC音频 03 - 实时通信框架
WebRTC音频01 - 设备管理 WebRTC音频 02 - Windows平台设备管理 WebRTC音频 03 - 实时通信框架(本文) WebRTC音频 04 - 关键类 WebRTC音频 05 - 音频采集编码 一、前言: 前面介绍了音频设备管理,并且以windows平台为例子,介绍了ADM相关的类…...
Maven陷阱揭秘:避开Java项目构建的10大常见误区
文章目录 引言基础知识核心概念示例演示实际应用深入与最佳实践常见问题解答结语学习资源互动环节 引言 Maven是Java项目中广泛使用的项目管理和构建自动化工具。它通过一个中央仓库和依赖管理系统,简化了项目的构建和依赖管理。理解Maven的依赖机制对于构建和维护…...
基础数据结构思路写法记录,便于回顾
重思路非代码。基础的思路搞懂了,变形题目顺着思考基本都能写出来! 二分查找 int binarySearch(vector<int> &nums, int target) {// write your code hereif (nums.empty()) {return -1;}int start 0;int end nums.size() - 1;while (star…...
基于AI的量化投资框架Qlib的Python依赖包pyqlib安装问题记录
版权声明:本文为博主原创文章,如需转载请贴上原博文链接:基于AI的量化投资框架Qlib的Python依赖包pyqlib安装问题记录-CSDN博客 前言:最近想使用Qlib来做量化交易的策略研究,但是第一步就卡在了安装pyqlib依赖包&#…...
《语音识别方案选择》
《语音识别方案选择》 一、引言二、语音识别技术概述(一)语音识别的基本原理(二)语音识别技术的发展历程(三)语音识别技术的分类1、基于声学模型的语音识别2、基于语言模型的语音识别3、端到端的语音识别 三…...
目标检测数据集图片及标签同步裁剪
目录 前言 具体方法 使用介绍 完整代码 前言 在目标检测任务中,模型的训练依赖于大量高质量的标注数据。然而,获取足够多的标注数据集往往代价高昂,并且某些情况下,数据集中的样本分布不均衡,这会导致模型的泛化能…...
【设计模式-简单工厂】
定义 简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,用于通过一个工厂类来创建某个产品类的实例,而不直接在客户端(调用方)中实例化对象。 这种模式的主要思想是将对象的创建逻辑集中在一个…...
多个版本的GCC(GNU编译器集合)可以同时安装并存
在Ubuntu系统中,多个版本的GCC(GNU编译器集合)可以同时安装并存。GCC是编译C、C以及其他编程语言程序的重要工具,不同的项目可能需要不同版本的GCC来确保兼容性。 为什么需要多个GCC版本 项目依赖:不同的软件项目可能…...
量子纠错--shor‘s 码
定理1 (量子纠错的条件) C是一组量子编码,P是映射到C上的投影算子。假设是一个算子元素描述的量子操作,那么基于量子编码C,存在一个能对抗描述的噪声的纠错操作R的充要条件是 对某个复元素厄米矩阵成立。 将算子元素称为导致的错误。如果这样…...
机器学习2
一、模型评估方法 1.1 K折交叉验证法(K-Fold Cross Validation) 1.1.1 定义 K折交叉验证法是一种用于评估模型性能的技术。它将数据集分为K个相等的子集,模型会轮流使用一个子集作为测试集,其余K-1个子集作为训练集。这个过程会…...
【2024最严苛功能压力测试】:在金融合规文档生成、医疗术语推理、代码安全审计三大高危场景下,Claude与Gemini谁扛住了0误判红线?
更多请点击: https://intelliparadigm.com 第一章:【2024最严苛功能压力测试】:在金融合规文档生成、医疗术语推理、代码安全审计三大高危场景下,Claude与Gemini谁扛住了0误判红线? 测试设计原则 本测试采用“双盲对…...
ARM架构CNTHP_CTL_EL2寄存器详解与虚拟化应用
1. ARM架构中的CNTHP_CTL_EL2寄存器深度解析在ARMv8-A架构的虚拟化环境中,定时器管理是Hypervisor实现高效资源调度和时间隔离的关键组件。作为EL2特权级的物理定时器控制寄存器,CNTHP_CTL_EL2为虚拟化软件提供了精确的计时控制能力。本文将深入剖析该寄…...
5分钟Git指南
Git——一个版本控制系统 了解Git当你建立了一个Git版本库,那么存放.git(也就是版本库)的文件夹就被称为工作区,.git内部有一个暂存区,一个叫做master的分支,一个HEAD指针能够指向分支中不同版本的文件&…...
别再只会用WinHex看十六进制了!这5个隐藏功能帮你搞定90%的数据恢复难题
WinHex高阶数据恢复实战:5个被低估的杀手级功能解析 在数据恢复领域,WinHex早已超越了简单的十六进制编辑器定位。这款由X-Ways公司开发的专业工具集成了磁盘编辑、内存分析、数据解释等多项强大功能,但大多数用户仅停留在基础的文件浏览和简…...
Windows 11安卓子系统WSA:在电脑上流畅运行手机应用的完整指南
Windows 11安卓子系统WSA:在电脑上流畅运行手机应用的完整指南 【免费下载链接】WSA Developer-related issues and feature requests for Windows Subsystem for Android 项目地址: https://gitcode.com/gh_mirrors/ws/WSA 你是否曾想过在Windows电脑上直接…...
从ENVI SARscape到SNAP:手把手教你迁移哨兵1 GRD数据预处理流程(含避坑指南)
从ENVI SARscape到SNAP:哨兵1 GRD数据预处理全流程迁移实战 当雷达遥感领域的工具生态逐渐向开源化倾斜,许多长期依赖ENVI SARscape的研究者开始面临工具迁移的挑战。本文将聚焦哨兵1号GRD数据的预处理流程,为需要从商业软件转向开源工具的用…...
Windows Cleaner终极指南:3步解决C盘爆红和电脑卡顿难题
Windows Cleaner终极指南:3步解决C盘爆红和电脑卡顿难题 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner Windows Cleaner是一款专为Windows系统设计的…...
线性调频等离子鞘套目标雷达探测平台【附代码】
✨ 长期致力于等离子鞘套、脉内多普勒频率、干扰目标抑制、FPGA研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)等离子鞘套回波建模与脉内多普勒参数提…...
OpenClaw 如何实现任务恢复与失败重试?
网罗开发(小红书、快手、视频号同名)大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等方…...
【东亚美学AI化里程碑】:全球首份Midjourney Sumi-e风格Prompt工程白皮书(附东京艺术大学合作验证的17组对比测试数据)
更多请点击: https://intelliparadigm.com 第一章:东亚美学AI化的范式跃迁 东亚美学传统强调“留白”“气韵”“物哀”与“间”(ma)等非显性结构,其核心并非形式完备性,而在于感知张力与意义生成的临界状态…...
