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

第十四届蓝桥杯三月真题刷题训练——第 9 天

第 1 题:找素数  

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

素数就是不能再进行等分的整数。比如:7,11。而 9 不是素数,因为它可以平分为 3 等份。一般认为最小的素数是22,接着是 3,5,...

请问,第 100002(十万零二)个素数是多少?

请注意:“2”是第一素数,“3” 是第二个素数,依此类推。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

代码:(普通筛)

package 第十四届蓝桥杯三月真题刷题训练.day9;/*** @author yx* @date 2023-03-12 18:43*/
public class 找素数 {public static void main(String[] args) {int ans=0;int i=2;while (true){if(isPrime(i)){ans++;if(ans==100002){System.out.println(i);return;}}i++;}}static boolean isPrime(int n){for (int i = 2; i <= Math.sqrt(n) ; i++) {if(n%i==0){return false;}}return true;}
}

代码:(欧拉筛)

package 第十四届蓝桥杯三月真题刷题训练.day9;public class 欧拉筛 {public static void main(String[] args) {//默认false为质数int N=10000000;//N不能给太大,否则会爆栈boolean[] isPrime = new boolean[N];int[] prime=new int[N];isPrime[0]=isPrime[1]=true;//0,1都不是质数int temp=0;for (int i = 2; i < N; i++) {if(!isPrime[i]){prime[temp++]=i;if(temp==100002){System.out.println(i);return;}}for (int j = 0; j < temp && i*prime[j]<N; j++) {//i*prime[j]<N防止越界isPrime[i*prime[j]]=true;//标记为非素数、if(i%prime[j]==0)break;//防止重复标记}}}
}

贴一个讲的不错的视频:

欧拉筛【力扣周赛 326】LeetCode_哔哩哔哩_bilibili本节讲了如何线性筛质数(也叫欧拉筛)。欢迎一键三连,在评论区发表你对这场周赛的体会。, 视频播放量 4432、弹幕量 13、点赞数 257、投硬币枚数 189、收藏人数 76、转发人数 12, 视频作者 灵茶山艾府, 作者简介 算法讲师 | 力扣竞赛 Top10 | 全网刷题量 7000+,相关视频:我上次在代码中看到算法,还是一个刚毕业不久的同事用了一个分治+回溯,没考虑空间复杂度导致线上OOM……,求素数【欧拉筛法】,并查集 最小堆【力扣周赛 323】,外国佬用Neovim写代码,有点武侠比武的代入感,欧拉筛,几行就行,一次就好,y总,你当年的同学都年薪百万了吗 | 力扣第326场周赛,蓝桥杯算法学习路线 | 全程制作过程公开,Leetcode 第326场周赛国服36名菜鸡实况解说:2023从一场超级手速场开始......,一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解,ACM金牌可以在大厂乱杀吗?https://www.bilibili.com/video/BV1H8411E7hn/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=eb072ba6b610daa77b0adfe79fcc5879

第 2 题:图书排列_dfs板子

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

将编号为 1 ~ 10 的 10 本书排放在书架上,要求编号相邻的书不能放在相邻的位置。

请计算一共有多少种不同的排列方案。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

代码:

之前写过一摸一样的dfs板子,改一下check函数即可食用

真题传送:第十四届蓝桥杯三月真题刷题训练——第 4 天_小羊不会飞的博客-CSDN博客

package 第十四届蓝桥杯三月真题刷题训练.day9;/*** @author yx* @date 2023-03-12 20:18*/
public class 图书排列_dfs {static int[] nums = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};static int ans = 0;static int to = 9;public static void main(String[] args) {dfs(0);System.out.println(ans);}//from是数组交换位置的头指针(依次会+1),to是尾指针相当于哨兵的作用,当from==to的时候退出static void dfs(int from) {if (from == to) { //递归的出口check();//检查是否相邻} else {for (int i = from; i <= to; i++) {swap(from, i);dfs(from + 1);//回溯恢复swap(from, i);}}}static void swap(int a, int b) {int temp = nums[a];nums[a] = nums[b];nums[b] = temp;}static void check(){for (int i = to; i >= 1; i--) {if(Math.abs(nums[i]-nums[i-1])==1){return;}}ans++;}
}

看了一晚上欧拉筛,明天补题,先跑步去了

第 3 题:日志统计

第 4 题:   杨辉三角   

http://www.lryc.cn/news/39111.html

相关文章:

  • 操作系统复习
  • springboot健身房管理系统
  • C语言学习笔记——数组
  • 类和对象 - 中
  • Android之屏幕适配方案
  • SpringBoot+jersey跨域文件上传
  • 数据结构One——绪论
  • JVM篇之内存及GC
  • Linux驱动操作地址(寄存器)的一些方式
  • Java日志框架介绍
  • 编程中遇到的计算机大小端概念
  • 日志与可视化方案:从ELK到EFK,再到ClickHouse
  • 字符函数和字符串函数(上)——“C”
  • 九龙证券|下周解禁市值超400亿元,3股解禁压力较大
  • 一个大型网站架构的演变历程
  • 前端前沿web 3d可视化技术 ThreeJS学习全记录
  • 链表经典笔试题(LeetCode刷题)
  • SpringCloud五大组件
  • Echart的使用初体验,Echarts的基本使用及语法格式,简单图表绘制和使用及图例添加【学习笔记】
  • 聊聊腾讯T13技术专家被开除
  • c++ 常见宏、模板用法【1】
  • 【25】Verilog进阶 - 序列检测
  • 如何绕开运营商的 QoS 限制
  • C#基础教程22 异常处理
  • java八股文--java基础
  • 2022年全国职业院校技能大赛(中职组)网络安全竞赛试题A模块第四套解析(详细)
  • 【Spark】spark使用jdbc连接带有kerberos认证的hive jdbc
  • 【Maven】项目中pom.xml坐标定义以及pom基本配置
  • Linux GCC 编译详解
  • 谁说程序员不懂了浪费,女神节安排