备战蓝桥杯----贪心算法(二进制)

news/2024/6/18 6:25:55 标签: 蓝桥杯, 贪心算法, c++, 算法

已经差不多掌握了贪心的基本思想,让我们看几道比较趣的题吧!

先来个比较有意思的题热热身:

法1.我们可以先把l,r化成二进制的形式。

然后分俩种情况:

(1)若他们位数不一样并且位数高的全为1,那么答案即位数高的数

(2)若他们位数不一样并且位数高的不全为1,那么可以构造011111这样的数

(3)若他们位数一样,那么从左往右,前面照抄直到遇到两个不一样的位数,后面方法同上

法2.我们可以先把l化成二进制的形式。

然后从低位到高位,遇到0就变1,在判断是否超出了r.

因为从低位到高位,所以在相同1的个数的条件下,这样的增幅是最小的。

那么我们来个题:

这题还是比较容易,我们只要用前缀和把每个数的某一位的01个数统计出来,如果0多,那么x的那一位就取1;

下面为AC代码:

再来一题类似的:

很显然,我们先把L,R转为二进制,然后从高位开始到第一个位数不同的地方,然后让为1的位后面跟上00000.....,然后让为0的位后面跟上11111....,即可。下面是AC代码:

让我们看一道比较难的题目吧

下面是分析:

首先,我们按位进行贪心,使每一位经过运算后变为1;

那如何快速的知道某一位是1还是0经过运算后变为1呢?

我们可以分别用11111串与000000串去运算再比较结果即可。

下面是AC代码:


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

相关文章

Web3创业:去中心化初创公司的崛起

随着Web3时代的到来,去中心化技术的崛起不仅令人瞩目,也为创业者带来了前所未有的机遇。在这个新的时代,一批去中心化初创公司正崭露头角,重新定义着商业和创新的边界。本文将深入探讨Web3创业的趋势,以及去中心化初创…

Canal + RocketMQ 同步 MySQL 数据到 Redis

解决缓存和数据库一致性问题 一般来说,缓存中的数据没什么问题,但是数据库更新后,就容易出现缓存(Redis)和数据库(MySQL)间的数据一致性问题。由于写和读是并发的,没法保证顺序&…

asp.net core接口报500错误排查

接口已经进行了try catch捕捉&#xff0c;但是还是报错&#xff0c;放到web.config下的错误&#xff0c;主要是是将stdoutLogEnabled修改为true <aspNetCore processPath"dotnet" arguments".\xxxx.dll" stdoutLogEnabled"true" stdoutLogFil…

[Vue] this.$router.go(0)在苹果手机刷新失败

vue中刷新当前页面使用this.$router.go(0)和window.location.reload() this.r o u t e r . g o ( 0 ) 和 w i n d o w . l o c a t i o n . r e l o a d ( ) 都 是 刷 新 当 前 页 &#xff0c; 但是this.router.go(0)&#xff0c;在苹果手机中无反应&#xff0c; 只能用js 原…

洛谷p1036选数

[NOIP2002 普及组] 选数 题目描述 已知 n n n 个整数 x 1 , x 2 , ⋯ , x n x_1,x_2,\cdots,x_n x1​,x2​,⋯,xn​&#xff0c;以及 1 1 1 个整数 k k k&#xff08; k < n k<n k<n&#xff09;。从 n n n 个整数中任选 k k k 个整数相加&#xff0c;可分别得…

深度强化学习(王树森)笔记03

深度强化学习&#xff08;DRL&#xff09; 本文是学习笔记&#xff0c;如有侵权&#xff0c;请联系删除。本文在ChatGPT辅助下完成。 参考链接 Deep Reinforcement Learning官方链接&#xff1a;https://github.com/wangshusen/DRL 源代码链接&#xff1a;https://github.c…

vmware安装ubuntu server22.04

下载ubuntu https://cn.ubuntu.com/download 安装vmware 安装 选择自定义硬件&#xff0c;删除打印机和声卡 选择ubuntu镜像 关闭&#xff0c;完成 开启虚拟机 空格选择minimized 重启输入账号密码登录 查看Ip地址使用xshell链接 我看时区不对想修改…

go学习之air库的使用

首先下载air库 go install github.com/cosmtrek/air之后你需要去找到库下载的地方&#xff0c;若使用的是go mod可以使用命令 go env GOPATH找到下载库的位置 进入后&#xff0c;有bin&#xff0c;pkg目录&#xff0c;进入bin目录&#xff0c;你能看到air.exe文件 这时候将此…