蓝桥杯备赛 day1 | 1. 门牌制作, 2. 迷宫, 3. 乘积尾零

最近正好在刷算法题,报了一个蓝桥杯体验一下,但是钱都交了,高低混个奖好吧,今天做的都是一些填空推理题,相当于用程序写下正解,代码是在Dev C++上面写的

在这里插入图片描述

#include<iostream>
#include<bits/stdc++.h>
using namespace std;int main(){int res = 0;for(int i = 1;i<= 2020;i++){string cur = to_string(i);for(char c : cur){if(c == '2'){res++;}}}cout<<res<<endl;return 0;
}

结果是624,拿下!

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这道题就是深度优先遍历即可,就是要自己搞输入的数据处理起来很麻烦,就直接在resInit函数上做了。。。

#include<iostream>
#include<bits/stdc++.h>
using namespace std;int res = 0;
vector<vector<bool>> visit;
vector<vector<string>> chooseList;
void resInit(int n){for(int i = 0;i< n;i++){vector<bool> visitVec(n,false);visit.push_back(visitVec);}vector<string> visitStr1(1,"UDDLUULRUL");chooseList.push_back(visitStr1);vector<string> visitStr2(1,"UURLLLRRRU");chooseList.push_back(visitStr2);vector<string> visitStr3(1,"RRUURLDLRD");chooseList.push_back(visitStr3);vector<string> visitStr4(1,"RUDDDDUUUU");chooseList.push_back(visitStr4);vector<string> visitStr5(1,"URUDLLRRUU");chooseList.push_back(visitStr5);vector<string> visitStr6(1,"DURLRLDLRL");chooseList.push_back(visitStr6);vector<string> visitStr7(1,"ULLURLLRDU");chooseList.push_back(visitStr7);vector<string> visitStr8(1,"RDLULLRDDD");chooseList.push_back(visitStr8);vector<string> visitStr9(1,"UUDDUDUDLL");chooseList.push_back(visitStr9);vector<string> visitStr10(1,"ULRDLUURRR");chooseList.push_back(visitStr10);}
void dfs(vector<vector<string>> &chooseList,vector<vector<bool>> &visit,int i,int j,int &n){if(i < 0 || i> n-1 ||  j < 0 || j> n-1){res++;return;}if(visit[i][j]){return;}visit[i][j] = true;if(chooseList[i][0][j] == 'U'){dfs(chooseList,visit,i-1,j,n);}else if(chooseList[i][0][j] == 'D'){dfs(chooseList,visit,i+1,j,n);}else if(chooseList[i][0][j] == 'R'){dfs(chooseList,visit,i,j+1,n);}else if(chooseList[i][0][j] == 'L'){dfs(chooseList,visit,i,j-1,n);}visit[i][j] = false;
}
int main(){int n = 10;resInit(n);for(int i = 0;i< n;i++){for(int j = 0;j< n;j++){dfs(chooseList,visit,i,j,n);}}cout<<res<<endl;return 0;
}

resInit的后半部分在输入题干的地图数据,所以看起来很多,其实就是每个位置都做一次dfs就行

在这里插入图片描述

5650 4542 3554 473 946 4114 3871 9073 90 4329 
2758 7949 6113 5659 5245 7432 3051 4434 6704 3594 
9937 1173 6866 3397 4759 7557 3070 2287 1453 9899 
1486 5722 3135 1170 4014 5510 5120 729 2880 9019 
2049 698 4582 4346 4427 646 9742 7340 1230 7683 
5693 7015 6887 7381 4172 4341 2909 2027 7355 5649 
6701 6645 1671 5978 2704 9926 295 3125 3878 6785 
2066 4247 4800 1578 6652 4616 1113 6205 3264 2915 
3966 5291 2904 1285 2193 1428 2265 8730 9436 7074 
689 5510 8243 6114 337 4096 8199 7313 3685 211 

这道题不能直接相乘找0,暴力解的话很麻烦,大数乘法,分分钟就溢出,什么long long也不顶用,应该把数据一一处理,记录每一个乘数的2和5因子,最终把所有数的2和5因子的个数汇总起来去最小值,就是10因子的个数

#include<iostream>
#include<bits/stdc++.h>
using namespace std;int main(){int res = 0;int data[100] = {5650, 4542, 3554, 473, 946, 4114, 3871, 9073, 90, 4329 ,
2758 ,7949, 6113, 5659, 5245 ,7432 ,3051, 4434, 6704, 3594 ,
9937 ,1173, 6866, 3397 ,4759 ,7557, 3070, 2287 ,1453 ,9899, 
1486, 5722, 3135, 1170 ,4014, 5510 ,5120 ,729 ,2880 ,9019, 
2049, 698, 4582, 4346, 4427 ,646 ,9742, 7340 ,1230, 7683, 
5693, 7015, 6887, 7381, 4172, 4341, 2909, 2027, 7355, 5649, 
6701 ,6645 ,1671, 5978 ,2704 ,9926, 295 ,3125, 3878 ,6785 ,
2066 ,4247, 4800 ,1578, 6652 ,4616, 1113, 6205, 3264, 2915, 
3966 ,5291, 2904, 1285, 2193, 1428 ,2265, 8730, 9436, 7074 ,
689, 5510, 8243, 6114, 337 ,4096 ,8199, 7313, 3685 ,211 };int cnt2 = 0;int cnt5 = 0;for(int i = 0;i< 100;i++){int dataSum = data[i];while(dataSum %2 == 0) {cnt2++;dataSum /= 2;}dataSum = data[i];while(dataSum%5 == 0){cnt5++;dataSum /= 5;}}
res += min(cnt2,cnt5);cout<<res<<endl;return 0;
}

好困,结束!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/511728.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 小项目开发日记 06(Vue3 前端开发)

Java 小项目开发日记 06&#xff08;Vue3 前端开发&#xff09; 一、环境准备 1.1 创建vue工程(big-event-admin) npm init vuelatestcd big-event-admin npm install1.2 安装插件 1. 安装element-plus cnpm i element-plus --save2. 安装axios cnpm i axios3. 安装sass依赖…

重学SpringBoot3-yaml文件配置

重学SpringBoot3-yaml文件配置 引言YAML 基本语法YAML 数据类型YAML 对象YAML 数组复合结构标量引用 YAML 文件结构Spring Boot 中的 YAML 配置注意事项总结参考 引言 YAML&#xff08;YAML Ain’t Markup Language&#xff09;是一种常用于配置文件的数据序列化格式&#xff…

STM32(16)使用串口向电脑发送数据

发送字节 发送数组 发送字符和字符串 字符&#xff1a; 字符串&#xff1a; 字符串在电脑中以字符数组的形式存储

智元兔AI-免费论文写作神器

还在为写论文焦虑&#xff1f;免费AI写作大师来帮你三步搞定&#xff01; 智元兔AI是ChatGPT的人工智能助手&#xff0c;并且具有出色的论文写作能力。它能够根据用户提供的题目或要求&#xff0c;自动生成高质量的论文。 不论是论文、毕业论文、散文、科普文章、新闻稿件&…

分享一套高质量武器模型!免费速取!

继续分享一波 CC0 优质游戏资源&#xff0c;有喜欢的欢迎到Cocos Store上自取&#xff01; 01 低模手维武器模型 资源特点 FBX模型14个模型预制体14个模型面数&#xff1a;200~550资源包含 Cocos Creator 展示场景 资产种类 武器 10 个盾牌 4 个 下载地址&#xff1a;https://s…

【数据库】SQLite的基本指令、数据约束、联结表、触发器及索引的使用技巧

目录 一、SQLite 语句基础 1、创建表&#xff1a;create 语句 2、创建表&#xff1a;create 语句 (设置主键&#xff09; ​编辑 3、查看表 4、修改表&#xff1a;alter 5、删除表&#xff1a;drop table 语句 6、插入新行&#xff1a;insert into 语句--全部赋值 7、…

全局渐变滚动条样式

效果如下&#xff1a; APP.vue<style> /* 整个滚动条 */ ::-webkit-scrollbar {width: 5px;height: 10px; } /* 滚动条上的滚动滑块 */ ::-webkit-scrollbar-thumb {background-color: #49b1f5;/* 关键代码 */background-image: -webkit-linear-gradient(45deg,rgba(255,…

Neo4J

1.重装Neo4J出现的一些问题。 解决方案&#xff1a;直接将隐藏文件.Neo4JDesktop文件夹全部删除即可。 2.Neo4J Desktop的一些介绍 3.如何新建项目 参见&#xff1a; 【Neo4j Desktop】自存&#xff5c;Windows安装PythonJupyter notebook_nep4j链接jupyter-CSDN博客 图数据…

【编程学习】数组转矩阵

一、题目&#xff1a; 给定一个一维数组&#xff0c;要求是将数组转化成一个矩阵。数组的输入作为矩阵的第一列&#xff0c;之后每一列的数值&#xff0c;都要比上一列下移一行。 举例 输入&#xff1a; [1,2,3,4,5,6,7,8,9,10] 输出&#xff1a; 1 10 9 8 7 6 5 4 3 2 2 …

Redis基础---Java客户端应用

目录 一、介绍 二、Jedis的使用 三、SpringDataRedis的使用 创建&#xff1a; 一、介绍 在Redis官网&#xff0c;提供了多种编程语言的客户端&#xff0c;如Java、C等&#xff0c;官网地址&#xff1a;Clients | Redis 而对于Java的客户端有很多&#xff0c;但是用的最多的就是…

【图说】电脑发展史

免责声明:文中有一些图片来源自网络,如有版权请通知我删除,谢谢! “结绳记事”是计算的开端 如果说“结绳记事”仅是计数,那么“算筹”就是真正的计算工具 算盘也是我们老祖宗的杰出发明,最擅长“加减乘除”,包括但不限于乘方、开方、对数等。还能进行开发智力的“珠心算…

【好书推荐】这本书太好了!150页就能让你上手大模型应用开发《大模型应用开发极简入门:基于GPT-4和ChatGPT》

如果问个问题&#xff1a;有哪些产品曾经创造了伟大的奇迹&#xff1f;ChatGPT 应该会当之无愧入选。仅仅发布 5 天&#xff0c;ChatGPT 就吸引了 100 万用户——当然&#xff0c;数据不是关键&#xff0c;关键是其背后的技术开启了新的 AI 狂潮&#xff0c;成为技术变革的点火…