枚举、模拟法(蓝桥杯卡片、数的分解为例)
枚举和模拟算法是计算机领域常用的两种基本算法。枚举算法是一种通过列举所有可能的情况来解决问题的方法。模拟算法则是通过模拟真实场景来解决问题。
枚举、模拟法
枚举算法是指将问题分解为一系列离散的情况,通过枚举所有可能的情况,逐一检查每种情况来解决问题。这种算法适合解决一些问题的最优解问题,但是当数据规模较大时会因为枚举的数量过多而导致运行时间增长。
模拟算法是指将一个问题的真实情况模拟出来,并对问题进行推演,以便得到问题的解决方案。
例如,蓝桥杯 卡片 - 蓝桥云课 (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_string和find去做,详细见我的代码:
我的代码
#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;
}
相关文章:
枚举、模拟法(蓝桥杯卡片、数的分解为例)
枚举和模拟算法是计算机领域常用的两种基本算法。枚举算法是一种通过列举所有可能的情况来解决问题的方法。模拟算法则是通过模拟真实场景来解决问题。 枚举、模拟法 枚举算法是指将问题分解为一系列离散的情况,通过枚举所有可能的情况,逐一检查每种情…...
DC-DC升压变换器直流隔离高压输出稳压电源模块5v12v24v48v转50v110v150v220v250v300v350v500v
HRB 系列隔离宽电压输入高电压稳压输出 特点 效率高达 80%以上1*1英寸标准封装单电压输出稳压输出工作温度: -40℃~85℃阻燃封装,满足UL94-V0 要求温度特性好可直接焊在PCB 上应用 HRB 0.2~10W 系列模块电源是一种DC-DC升压变换器。该模块电源的输入电压分为&#…...
jQuery创建、添加、删除元素
一、创建元素 语法: $("<li></li>"); 动态的创建了一个 <li> 二、添加元素 1. 内部添加 1、element.append(内容) 把内容放入匹配元素内部最后面,类似原生 appendChild。 2、element.prepend(内容) 把内容放入匹…...
产品快讯丨神策数据 A/B 测试试验指标管理重磅升级
神策数据:为了更好地帮助企业管理试验指标,神策数据 A/B 测试完善了指标类型、配置方式、计算原理等,帮助分析师、运营同学等明确计算逻辑,并最大程度减少歧义以及与技术同学沟通的成本,以实现企业内部信息的有效统一。…...
游戏开发之Unity2021URP项目场景的构建
地面的修改和编辑:地面插件的使用 打开包管理器,在左边的包那里选择“Unity注册表”,在右边进行搜索“Polybrush”,之后选择右下角的安装 安装完之后要选择样本中的URP进行导入,因为我们的项目是URP渲染管线的&#x…...
数学分析:多元微积分1
卓里奇的数学分析的好处在于直接从多元函数来入手多元微积分,引出矩阵,十分自然。 紧集的概念,感觉直接用闭集去理解就行,(对于图形学来说)。 多元函数的极限,其实和单元函数并没有什么区别。 这…...
STC32G 三轮车负压电磁
文章目录前言整车效果控制思路循迹环岛处理障碍处理关键代码部分差比和以及当前速度计算角速度环速度环环岛处理障碍处理前言 年后就没怎么碰车了,到3月中旬换三轮了,可算有一点成效了,做个记录。 整车效果 三轮负压电磁慢速元素识别控制思…...
【编程小记】位运算 x -x 表示含义
位运算 x & -x 表示含义一、原码反码补码二、位运算 x & -x 表示含义三、最终结论一、原码反码补码 在计算机中,整数的数据的存储是按照补码的方式进行存储的 按照数据与0的大小,数据又被分为正数与负数 正数的原码反码补码相同。负数的原码&…...
信创PC利旧管理新模式,麒麟信安助力国家某部委实现高效云办公
2022年,国家某部委所有桌面终端均已完成信创PC替换,并将日常办公所需的办公Office套件、OA无纸化办公系统、即时通讯系统等全部迁移至信创PC,但在进行生产业务系统迁移时,该单位信创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转化器免费版有哪些?这几款办公达人们都在用
在现代办公中,文件的排版和格式是非常重要的,无论是发布通知或提交策划书、投档简历或是发表论文、宣传海报或是产品说明书等,我们经常使用PDF文件格式发送给他人。然而,很多人需要对PDF进行编辑修改,通常会先将其转换…...
2022MathorCup赛题B
以下所有文字均基于作者的实际经验,并不具有完全的合理性,请谨慎参考 目录 一、问题分析 (一)问题一 (二)问题二 二、预处理 (一)训练集预处理 (二)测…...
适合销售使用的CRM系统特点
销售人员抱怨CRM系统太复杂,这是一个很重要的问题。毕竟,如果系统太难使用,会导致CRM实用率和效率下降,最终影响公司的运作。在这篇文章中,我们来探讨当销售抱怨crm客户系统太复杂了,企业该如何解决。 缺少…...
项目中获取resource下文件路径的方法
String filepathrequest.getServletContext().getRealPath("/")"files\\"; 获取的当前文件在实际运行的tomcat地址目录 String path ClassUtils.getDefaultClassLoader().getResource("").getPath()"tmp/files/"; 获取的是当前文件…...
Air32F103CBT6|CCT6|KEIL-uVsion5|本地编译|STClink|(6)、Air32F103编译下载
目录 一、环境搭建 准备工作 安装支持包 二、新建工程 添加外设库支持 测试代码 三、下载烧录 一、环境搭建 准备工作 安装MDK5,具体方法请百度,安装后需要激活才能编译大文件 下载安装AIR32F103的SDK:luatos-soc-air32f103: Air32f…...
结构(c的数据类型)
我们知道数组是相同类型元素的集合,那么结构就是不同类型的元素的集合,这些不同元素叫结构中的成员。是因为这些集合都有一定的联系才会归为一类的。 形式:我们知道,平时学习的int,double都叫类型,而结构是…...
前端常用的开工具库
常用的开发工具库 打包工具webpack webpack是现在最流行的打包工具之一,是javaScript的静态模块的打包器。会根据业务逻辑构建一个依赖的关系图,每一个依赖的单元都是一个模块,模块可以是js文件 可以图片资源或者css资源。在使用webpack的时…...
爬虫之数据库存储
在对于爬取数量数量较少时,我们可以将爬虫数据保存于CSV文件或者其他格式的文件中,既简单又方便,但是如果需要存储的数据量大,又要频繁访问这些数据时,就应该考虑将数据保存到数据库中了。目前主流的数据库有关系性数据…...
面试官:你可以用 for of 遍历 Object 吗?
本文以 用 for of遍历 Object 为引 来聊聊 迭代器模式。 什么是迭代器模式 迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。 ——《设计模式:可复用面向对象软件的基础》 可以说迭代器模式就是为了遍历存在的。提…...
蓝桥杯基础12:BASIC-3试题 字母图形
资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG BABCDEF CBABCDE DCBABCD EDC…...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...
Java后端检查空条件查询
通过抛出运行异常:throw new RuntimeException("请输入查询条件!");BranchWarehouseServiceImpl.java // 查询试剂交易(入库/出库)记录Overridepublic List<BranchWarehouseTransactions> queryForReagent(Branch…...
ArcGIS Pro+ArcGIS给你的地图加上北回归线!
今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等,设置经线、纬线都以10间隔显示。 2、需要插入背会归线…...
2025 后端自学UNIAPP【项目实战:旅游项目】7、景点详情页面【完结】
1、获取景点详情的请求【my_api.js】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http(/login/getWXSessionKey, {code,avatar}); };//…...
数据可视化交互
目录 【实验目的】 【实验原理】 【实验环境】 【实验步骤】 一、安装 pyecharts 二、下载数据 三、实验任务 实验 1:AQI 横向对比条形图 代码说明: 运行结果: 实验 2:AQI 等级分布饼图 实验 3:多城市 AQI…...
Python[数据结构及算法 --- 栈]
一.栈的概念 在 Python 中,栈(Stack)是一种 “ 后进先出(LIFO)”的数据结构,仅允许在栈顶进行插入(push)和删除(pop)操作。 二.栈的抽象数据类型 1.抽象数…...
