蓝桥杯 历届试题 幸运数 (堆+DFS)
传送门:蓝桥杯
题目大意:
求区间 [m,n] 中幸运数的个数。
锦囊2:
从左到右扫描,用一下堆来处理,堆的每项记录下要删的倍数和当前删到的值,以当前删到的值建小根堆。每次取出一个加上一次倍数再放回去。枚举每一个数,如果这个数被跳过了就枚举下一个,如果没被跳过就找到了一个幸运数,把它的两倍加入堆。2的倍数可以特别处理一下。
思路:
因为提示用堆来做,我第一反应是用优先队列来做,但是发现优先队列不能很方便的按照下标遍历……GG……
正确的姿势是配合DFS暴力模拟,先去除下标为2的倍数的数,得到所有奇数。然后在此基础上,去除下标是当前位置数 x 的倍数的数,完成之后得到所有的幸运数。统计其中位于所求区间内的数的个数即可。
代码:
#include<stdio.h>int m,n,a[1000010];void dfs(int dep)
{int cnt=dep;if(a[dep]>n) return;for(int i=dep;i<n;i++){ //从当前位置往后遍历//如果位置 i不是 dep位置数的倍数则添加到数列中 if(i%a[dep]) a[cnt++]=a[i];}dfs(dep+1);
}int main()
{int i,ans; while(~scanf("%d%d",&m,&n)){for(i=1;i<=n;i++) a[i]=i*2-1; dfs(2); //从数字 2 的位置dfs即可 i=1;ans=0;while(a[i]<n){ //求所求区间内的数的个数 if(a[i++]>m) ans++;}printf("%d\n",ans);}return 0;
}
蓝桥杯 历届试题 幸运数 (堆+DFS)相关推荐
- 蓝桥杯c语言试题幸运数,蓝桥杯 历届试题 幸运数 dfs
时间限制:1.0s 内存限制:256.0MB 问题描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的"筛法"生成 . 首先从1开始写出自然数1,2,3,4,5,6,. ...
- 蓝桥杯 历届试题 分考场 (DFS)-----C语言—菜鸟级
问题 1874: [蓝桥杯][2017年第八届真题]分考场 时间限制: 1Sec 内存限制: 128MB 提交: 62 解决: 12 题目描述 n个人参加某项特殊考试. 为了公平,要求任何两个认识的人 ...
- 蓝桥杯历届试题 剪格子 (DFS)
http://lx.lanqiao.cn/problem.page?gpid=T27 历届试题 剪格子 时间限制:1.0s 内存限制:256.0MB 提交此题 锦囊1 锦囊2 问题描述 如下图所示,3 ...
- 蓝桥杯 历届试题 分考场(DFS+枚举)
传送门 题目描述 n个人参加某项特殊考试. 为了公平,要求任何两个认识的人不能分在同一个考场. 求是少需要分几个考场才能满足条件. 输入 第一行,一个整数n(1<n<100),表示参加考试 ...
- [蓝桥杯][历届试题]网络寻路(DFS)
题目描述 X 国的一个网络使用若干条线路连接若干个节点.节点间的通信是双向的.某重要数据包,为了安全起见,必须恰好被转发两次到达目的地.该包可能在任意一个节点产生,我们需要知道该网络中一共有多少种不同 ...
- 历届试题+九宫重排+java_蓝桥杯 历届试题 九宫重排 (bfs+康托展开去重优化)...
Description 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干次移动,可以形成第二个图所示的局面. 我们把第一个图的 ...
- 【蓝桥】 历届试题 分考场(DFS,回溯,剪枝,无向图染色问题)
历届试题 分考场 时间限制:1.0s 内存限制:256.0MB 问题描述 n个人参加某项特殊考试. 为了公平,要求任何两个认识的人不能分在同一个考场. 求是少需要分几个考场才能满足条件. 输入格式 第 ...
- 蓝桥杯历届试题 地宫取宝 dp or 记忆化搜索
问题描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被带到地宫的入口,国王要求他只能向右或向下行走. 走 ...
- 蓝桥杯历届试题代码参考
蓝桥杯历届试题代码参考 历届试题 核桃的数量 打印十字图 带分数 剪格子 错误票据 翻硬币 连号区间数 买不到的数目 大臣的旅费 幸运数 横向打印二叉树 危险系数 网络寻路 高僧斗法 格子刷油漆 农场 ...
最新文章
- html进度条圆圈渐变色,HTML5 canvas带渐变色的圆形进度条动画
- macbookpro升级后打不开eclipse_维修分享——面容坏升级iOS13系统后 导致前后摄像头都打不开...
- 20应用统计考研复试要点(part40)--概率论与数理统计
- 用Docker自动构建纸壳CMS
- CTabCtrl控件标签的相关设置
- 为什么是先更新数据库再删除缓存,而不是更新缓存?
- 170329、用 Maven 部署 war 包到远程 Tomcat 服务器
- mysql alter event_MYSQL ALTER EVENT介绍
- android实现Materia Design风格APP(六):结束,实现APP
- 坦克世界无法连接服务器未响应,打开坦克世界提示网络异常或者连接不上
- Julia :迎接0.6的到来
- java安装包的大概组成部分
- 软件工程---gjb438b 质量规范体系
- 双线性插值公式推导及Matlab实现
- Python三十个常见的脚本汇总
- FRP 内网穿透下载配置
- Linux 启动项管理
- Python全量字段校验
- 决策理论与方法——效用函数
- 锐龙r5 6600u和r5 5600u区别 r56600u和r55600u对比