蓝桥杯 历届试题 幸运数 (堆+DFS)

news/2024/5/20 6:29:26 标签: 暴力, 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;
}


http://www.niftyadmin.cn/n/968738.html

相关文章

怎么将图片在线转成PDF

怎么将图片在线转成PDF&#xff0c;在工作中经常会遇到文件转换得问题&#xff0c;每次遇到这种问题都会很头疼&#xff0c;虽然有很多方法可以进行转换&#xff0c;但是转换得效果却总是不尽如意。有没有什么好的在线方法可以将图片转换成PDF得呢&#xff0c;下方就让小编来分…

模型中到底包含什么呢?

模型包含两个主要方面&#xff1a;语义方面的信息&#xff08;语义&#xff09;和可视化的表达方法&#xff08;表示法&#xff09;。 语义方面用一套逻辑组件表达应用系统的含义&#xff0c;如类、关联、状态、用例和消息。语义模型元素携带了模型的含义即&#xff0c;它们表达…

codeforces 716C. Plus and Square Root (思路+大数)

传送门&#xff1a;codeforces 716C题目大意&#xff1a; 游戏开始时你在第 1 级&#xff0c;有个数字为 2。当你在第 k 级时&#xff0c;你可以进行以下两种操作&#xff1a;数字k&#xff0c;或者当数字可开平方时将其开平方。当数字 k 时&#xff0c;要求 k 后的数字是当前级…

在Linux下实现双网卡的绑定

一、原理 Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡&#xff0c;这个聚合起来的设备看起来是一个单独的以太网接口设备&#xff0c;通俗点讲就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作。其实这项技术在Sun和Cisco中早已存在&#xff0c;被称为…

codeforces 714C. Sonya and Queries (思维题)

传送门&#xff1a;codeforces 714C题目大意&#xff1a; 有 t 个操作&#xff0c;每个操作有以下三种类型&#xff1a;1. n 往多重集合中加一个数字 n2. - n 从多重集合中去掉一个数字 n3. ? s s 为 01 组成的字符串&#xff0c;0代表为对应位为偶数&#xff0c;…

Android VelocityTracker简介

android.view.VelocityTracker主要用跟踪触摸屏事件&#xff08;flinging事件和其他gestures手势事件&#xff09;的速率。用addMovement(MotionEvent)函数将Motion event加入到VelocityTracker类实例中.你可以使用getXVelocity() 或getXVelocity()获得横向和竖向的速率到速率时…

POJ 2342 | HDU 1520 Anniversary party 树形DP(入门题)

传送门&#xff1a;POJ 2342题目大意&#xff1a; 有若干人参加一个聚会&#xff0c;如果两个人之间有直接的上下属关系&#xff0c;则只能去一个。每个人都有个高兴值&#xff0c;问高兴值之和最大是多少&#xff1f;思路&#xff1a; 之前一直觉得树形DP比较难&#xff0c;现…

WOW.js – 让页面滚动更有趣

官网&#xff1a;http://mynameismatthieu.com/WOW/ 建议去官网一看 下载地址&#xff1a;https://github.com/matthieua/WOW 浏览器兼容 IE10 Chrome Firefox Opera Safari IE6、IE7 等老旧浏览器不支持 CSS3 动画&#xff0c;所以没有效果&#xff1b;而 wow.js 也使用了 que…