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

枚举、模拟法(蓝桥杯卡片、数的分解为例)

枚举和模拟算法是计算机领域常用的两种基本算法。枚举算法是一种通过列举所有可能的情况来解决问题的方法。模拟算法则是通过模拟真实场景来解决问题。

枚举、模拟法

枚举算法是指将问题分解为一系列离散的情况,通过枚举所有可能的情况,逐一检查每种情况来解决问题。这种算法适合解决一些问题的最优解问题,但是当数据规模较大时会因为枚举的数量过多而导致运行时间增长。

模拟算法是指将一个问题的真实情况模拟出来,并对问题进行推演,以便得到问题的解决方案。

例如,蓝桥杯 卡片 - 蓝桥云课 (lanqiao.cn)

题目描述

用卡片拼数字拼过的卡片不能再用有 0 到 9 的卡片各 2021 张,共 20210 张请问小蓝可以从 1拼到多少 ?

解题思路

比较容易的模拟,我们从1开始枚举,每次检查剩下的卡片能不能拼出这个数字就好。
把一个数在10进制下每个位置的数字求出来——先对10取模,个位上的数字就求出来了,再除以10,原本十位上的数字就变到了个位上,再对10取模...依次进行下去就求出来了。把当前拼的这个数每一位都拆出来,看看那个数字的卡片还够不够,不够的话就说明拼不了,这时候退出循环,所以最多拼到上一个数

我的代码

#include <iostream>
using namespace std;
int main()
{// 请在此输入您的代码int a[10]={2021,2021,2021,2021,2021,2021,2021,2021,2021,2021};for(int i=0;i<20210;i++){int n = i;while(n) {int d = n % 10;if(a[d] == 0) {cout << i - 1 << endl;return 0;}a[d]--;n /= 10;} }return 0;
}

例如,蓝桥杯 数的分解 - 蓝桥云课 (lanqiao.cn)

题目描述

把2019分解成3个各不相同的正整数之和,并且要求每个正整数都不包含数字2和4,一共有多少种不同的分解方法?

注意交换3个整数的顺序被视为同一种方法,例如1000+1001+18和1001+1000+18被视为同一种。

解题思路

我们定义这三个各不相同的正整数为i, j, k并且必须满足i<j<k。这样避免重复计算。

我们可以枚举i从1-2019 ,枚举j从1-2019,再枚举k从1-2019,这个题是填空题,这么干没问题,只是三个for循环的复杂度比较高,耗时长一些。

我们可以稍微优化一点点,比如可以考虑最内层的k ,当ij确定了之后,k的值自然就确定了,变成了2个for循环,复杂度就会降低一些,剩下我们只需要检查i,j,k 是否满足题目说的不含2和4即可。

怎么检查呢?

我们可以用字符串的函数to_stringfind去做,详细见我的代码:

我的代码

#include <iostream>
using namespace std;
int main()
{// 请在此输入您的代码int sum=0,i,j,k;for(i=1;i<673;i++){for(j=i+1;j<1009;j++){k=2019-i-j;string a=to_string(i);string b=to_string(j);string c=to_string(k);if(a.find("2")==-1&&a.find("4")==-1&&b.find("2")==-1&&b.find("4")==-1&&c.find("2")==-1&&c.find("4")==-1)if(j<k)sum++;}}cout<<sum;return 0;
}


 

相关文章:

枚举、模拟法(蓝桥杯卡片、数的分解为例)

枚举和模拟算法是计算机领域常用的两种基本算法。枚举算法是一种通过列举所有可能的情况来解决问题的方法。模拟算法则是通过模拟真实场景来解决问题。 枚举、模拟法 枚举算法是指将问题分解为一系列离散的情况&#xff0c;通过枚举所有可能的情况&#xff0c;逐一检查每种情…...

DC-DC升压变换器直流隔离高压输出稳压电源模块5v12v24v48v转50v110v150v220v250v300v350v500v

HRB 系列隔离宽电压输入高电压稳压输出 特点 效率高达 80%以上1*1英寸标准封装单电压输出稳压输出工作温度: -40℃~85℃阻燃封装&#xff0c;满足UL94-V0 要求温度特性好可直接焊在PCB 上应用 HRB 0.2~10W 系列模块电源是一种DC-DC升压变换器。该模块电源的输入电压分为&#…...

jQuery创建、添加、删除元素

一、创建元素 语法&#xff1a; $("<li></li>"); 动态的创建了一个 <li> 二、添加元素 1. 内部添加 1、element.append(内容) 把内容放入匹配元素内部最后面&#xff0c;类似原生 appendChild。 2、element.prepend(内容) 把内容放入匹…...

产品快讯丨神策数据 A/B 测试试验指标管理重磅升级

神策数据&#xff1a;为了更好地帮助企业管理试验指标&#xff0c;神策数据 A/B 测试完善了指标类型、配置方式、计算原理等&#xff0c;帮助分析师、运营同学等明确计算逻辑&#xff0c;并最大程度减少歧义以及与技术同学沟通的成本&#xff0c;以实现企业内部信息的有效统一。…...

游戏开发之Unity2021URP项目场景的构建

地面的修改和编辑&#xff1a;地面插件的使用 打开包管理器&#xff0c;在左边的包那里选择“Unity注册表”&#xff0c;在右边进行搜索“Polybrush”&#xff0c;之后选择右下角的安装 安装完之后要选择样本中的URP进行导入&#xff0c;因为我们的项目是URP渲染管线的&#x…...

数学分析:多元微积分1

卓里奇的数学分析的好处在于直接从多元函数来入手多元微积分&#xff0c;引出矩阵&#xff0c;十分自然。 紧集的概念&#xff0c;感觉直接用闭集去理解就行&#xff0c;&#xff08;对于图形学来说&#xff09;。 多元函数的极限&#xff0c;其实和单元函数并没有什么区别。 这…...

STC32G 三轮车负压电磁

文章目录前言整车效果控制思路循迹环岛处理障碍处理关键代码部分差比和以及当前速度计算角速度环速度环环岛处理障碍处理前言 年后就没怎么碰车了&#xff0c;到3月中旬换三轮了&#xff0c;可算有一点成效了&#xff0c;做个记录。 整车效果 三轮负压电磁慢速元素识别控制思…...

【编程小记】位运算 x -x 表示含义

位运算 x & -x 表示含义一、原码反码补码二、位运算 x & -x 表示含义三、最终结论一、原码反码补码 在计算机中&#xff0c;整数的数据的存储是按照补码的方式进行存储的 按照数据与0的大小&#xff0c;数据又被分为正数与负数 正数的原码反码补码相同。负数的原码&…...

信创PC利旧管理新模式,麒麟信安助力国家某部委实现高效云办公

2022年&#xff0c;国家某部委所有桌面终端均已完成信创PC替换&#xff0c;并将日常办公所需的办公Office套件、OA无纸化办公系统、即时通讯系统等全部迁移至信创PC&#xff0c;但在进行生产业务系统迁移时&#xff0c;该单位信创PC仍存在业务系统与不同芯片PC难适配、应用难兼…...

【玩转RT-Thread】RT-Thread内核宏定义详解(rtdef.h)

文章目录1.RT-Thread版本信息2.RT-Thrad基础数据类型定义3.RT-Thread基本数据类型的范围4.RT-Thread系统滴答时钟最大计数值5.RT-Thread IPC数据类型范围6.RT-Thread避免未使用变量警告7.编译器相关定义8.编译器相关定义9.RT-Thread错误码定义1.RT-Thread版本信息 /* RT-Threa…...

PDF转化器免费版有哪些?这几款办公达人们都在用

在现代办公中&#xff0c;文件的排版和格式是非常重要的&#xff0c;无论是发布通知或提交策划书、投档简历或是发表论文、宣传海报或是产品说明书等&#xff0c;我们经常使用PDF文件格式发送给他人。然而&#xff0c;很多人需要对PDF进行编辑修改&#xff0c;通常会先将其转换…...

2022MathorCup赛题B

以下所有文字均基于作者的实际经验&#xff0c;并不具有完全的合理性&#xff0c;请谨慎参考 目录 一、问题分析 &#xff08;一&#xff09;问题一 &#xff08;二&#xff09;问题二 二、预处理 &#xff08;一&#xff09;训练集预处理 &#xff08;二&#xff09;测…...

适合销售使用的CRM系统特点

销售人员抱怨CRM系统太复杂&#xff0c;这是一个很重要的问题。毕竟&#xff0c;如果系统太难使用&#xff0c;会导致CRM实用率和效率下降&#xff0c;最终影响公司的运作。在这篇文章中&#xff0c;我们来探讨当销售抱怨crm客户系统太复杂了&#xff0c;企业该如何解决。 缺少…...

项目中获取resource下文件路径的方法

String filepathrequest.getServletContext().getRealPath("/")"files\\"; 获取的当前文件在实际运行的tomcat地址目录 String path ClassUtils.getDefaultClassLoader().getResource("").getPath()"tmp/files/"; 获取的是当前文件…...

Air32F103CBT6|CCT6|KEIL-uVsion5|本地编译|STClink|(6)、Air32F103编译下载

目录 一、环境搭建 准备工作 安装支持包 二、新建工程 添加外设库支持 测试代码 三、下载烧录 一、环境搭建 准备工作 安装MDK5&#xff0c;具体方法请百度&#xff0c;安装后需要激活才能编译大文件 下载安装AIR32F103的SDK&#xff1a;luatos-soc-air32f103: Air32f…...

结构(c的数据类型)

我们知道数组是相同类型元素的集合&#xff0c;那么结构就是不同类型的元素的集合&#xff0c;这些不同元素叫结构中的成员。是因为这些集合都有一定的联系才会归为一类的。 形式&#xff1a;我们知道&#xff0c;平时学习的int&#xff0c;double都叫类型&#xff0c;而结构是…...

前端常用的开工具库

常用的开发工具库 打包工具webpack webpack是现在最流行的打包工具之一&#xff0c;是javaScript的静态模块的打包器。会根据业务逻辑构建一个依赖的关系图&#xff0c;每一个依赖的单元都是一个模块&#xff0c;模块可以是js文件 可以图片资源或者css资源。在使用webpack的时…...

爬虫之数据库存储

在对于爬取数量数量较少时&#xff0c;我们可以将爬虫数据保存于CSV文件或者其他格式的文件中&#xff0c;既简单又方便&#xff0c;但是如果需要存储的数据量大&#xff0c;又要频繁访问这些数据时&#xff0c;就应该考虑将数据保存到数据库中了。目前主流的数据库有关系性数据…...

面试官:你可以用 for of 遍历 Object 吗?

本文以 用 for of遍历 Object 为引 来聊聊 迭代器模式。 什么是迭代器模式 迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素&#xff0c;而又不暴露该对象的内部表示。 ——《设计模式&#xff1a;可复用面向对象软件的基础》 可以说迭代器模式就是为了遍历存在的。提…...

蓝桥杯基础12:BASIC-3试题 字母图形

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 利用字母可以组成一些美丽的图形&#xff0c;下面给出了一个例子&#xff1a; ABCDEFG BABCDEF CBABCDE DCBABCD EDC…...

G-Helper终极指南:如何彻底解决华硕笔记本散热与性能管理难题

G-Helper终极指南&#xff1a;如何彻底解决华硕笔记本散热与性能管理难题 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenb…...

ChatGPT资源宝库:从提示工程到项目实践的完整指南

1. 项目概述&#xff1a;一份关于ChatGPT的“Awesome”清单意味着什么&#xff1f;如果你最近在GitHub上搜索过任何与ChatGPT、AI或提示工程相关的内容&#xff0c;那么你大概率见过一个以“awesome-”开头的仓库。而sindresorhus/awesome-chatgpt无疑是这个领域里最知名、最常…...

Kubernetes部署Valheim游戏服务器:云原生架构实践指南

1. 项目概述&#xff1a;当维京英灵殿遇上Kubernetes如果你和我一样&#xff0c;既沉迷于《英灵神殿》&#xff08;Valheim&#xff09;里那种与三五好友一起伐木、采矿、建造长屋&#xff0c;然后被巨魔追得满地图跑的原始乐趣&#xff0c;又恰好是一名整天和容器、编排系统打…...

Excel MCP Server终极指南:3步实现无界面Excel自动化处理

Excel MCP Server终极指南&#xff1a;3步实现无界面Excel自动化处理 【免费下载链接】excel-mcp-server A Model Context Protocol server for Excel file manipulation 项目地址: https://gitcode.com/gh_mirrors/ex/excel-mcp-server 你是否厌倦了手动操作Excel的繁琐…...

AI驱动命令行工具:用自然语言自动化开发任务

1. 项目概述&#xff1a;一个为开发者“下厨”的AI助手如果你是一名开发者&#xff0c;每天在终端里敲打命令&#xff0c;构建、部署、调试&#xff0c;那么你肯定对重复性的命令行操作感到厌倦。比如&#xff0c;每次启动一个新项目&#xff0c;都要手动创建目录结构、初始化G…...

Godot游戏自动化构建与发布:基于GitHub Actions与Docker的CI/CD实践

1. 项目概述&#xff1a;当Godot遇上CI/CD如果你是一名独立游戏开发者&#xff0c;或者在一个小团队里负责Godot引擎的项目&#xff0c;那么“构建”和“部署”这两个词&#xff0c;大概率是你开发流程里最头疼的环节之一。手动导出项目到不同平台&#xff08;Windows、Linux、…...

Rekall:基于时空查询的视频内容智能检索开源框架

1. 项目概述&#xff1a;Rekall&#xff0c;一个面向视频时空查询的开源利器 如果你曾经尝试过从一段长视频里&#xff0c;精准地找出“那个穿红色衣服的人从画面左侧走到右侧的片段”&#xff0c;或者想快速定位“所有出现这只特定宠物狗的镜头”&#xff0c;你就会知道这有多…...

DS3502 I2C数字电位器:从原理到Arduino/Python实战应用

1. 项目概述&#xff1a;告别手动旋钮&#xff0c;拥抱数字控制如果你和我一样&#xff0c;厌倦了在面包板上反复拧动电位器旋钮来调试电路&#xff0c;或者正在寻找一种能够通过程序精确控制电阻值的方法&#xff0c;那么DS3502这类I2C数字电位器绝对是你的“梦中情芯”。它本…...

从图片到摄像头:用YOLOv8n.pt模型在Win10上实现实时目标检测(代码+命令详解)

从图片到摄像头&#xff1a;用YOLOv8n.pt模型在Win10上实现实时目标检测&#xff08;代码命令详解&#xff09; 当计算机视觉遇上边缘计算&#xff0c;目标检测技术正在重塑人机交互的边界。YOLOv8作为当前最先进的实时检测框架之一&#xff0c;其轻量级版本yolov8n.pt在普通消…...

Arm Iris组件参数化建模与调试实践

1. Arm Iris组件概述与核心价值Arm Iris组件是Fast Models仿真平台中的关键模块&#xff0c;它为芯片设计验证和软件开发提供了高度参数化的虚拟原型环境。作为一名长期从事Arm架构开发的工程师&#xff0c;我发现Iris组件的设计理念完美体现了"配置即硬件"的思想——…...