对于无穷大0x3f3f3f3f的选择

简介: 对于无穷大0x3f3f3f3f的选择

在算法竞赛中,我们常常需要用到设置一个常量用来代表“无穷大”。


一般会有两个选择:0x7fffffff和0x3f3f3f3f


比如对于int类型的数,有的人会采用INT_MAX,即0x7fffffff作为无穷大。但是以INT_MAX为无穷大常常面临一个问题,即加一个其他的数会溢出。


而这种情况在动态规划,或者其他一些递推的算法中常常出现,很有可能导致算法出问题。


下面来看看到底如何进行选择


0x7fffffff


首先了解数字的含义,"0x"是一个前缀,表示十六进制。


而"7"在二进制中是7的二进制码为 0111,f是指1111。


这样, 0x7FFFFFFF 的二进制表示就是除了符号位是 0表示正数,其余都是1。


对于int而言,0x7fffffff是最大的数值。


所以可以把需要比较的无穷大设为0x7fffffff再进行比较。


0x3f3f3f3f


0x3f3f3f3f的十进制为1061109567,和INT_MAX一个数量级,即10^9数量级,


而一般场合下的数据都是小于10^9的。


0x3f3f3f3f的数值为1061109567,它的两倍也只有2122219134,不会溢出。


这样就有一个好处,当两个无穷大相加的时候可以使int型整数不溢出,并使数值仍为无穷大。


而使用0x3f3f3f3f在对于数组初始化的时候也比较方便,一般数组批量赋值时会使用memset函数,如果想将一个数组全部定义为"无穷大"的0x3f3f3f3f,因为memset函数是对字节进行操作,而0x3f3f3f3f的每个字节都是0x3f,所以可以直接定义为memset(array, 0x3f, sizeof(array))


在java中使用Arrays.fill(arr,0x3f3f3f3f);


相关文章
|
弹性计算 运维 数据安全/隐私保护
阿里云搭建Steam游戏【雾锁王国】服务器教程_纯免费!
阿里云搭建Steam游戏【雾锁王国】服务器教程_纯免费!免费自建雾锁王国Enshrouded服务器,先领取阿里云300元无门槛代金券,然后在雾锁王国Enshrouded专题页一键部署,不需要基础,鼠标点选即可10秒钟创建一台雾锁王国游戏服务器,超简单,阿里云百科分享阿里云无门槛代金券领取方法、雾锁王国服务器详细搭建教程
|
Python
Python传参数:传值还是传址?
【2月更文挑战第18天】
677 6
|
存储 Kubernetes 监控
如何管理越来越多的 operator?OLM 给你答案
OLM(Operator Lifecycle Manager) 作为 Operator Framework 的一部分,可以帮助用户进行 Operator 的自动安装,升级及其生命周期的管理。同时 OLM 自身也是以 Operator 的形式进行安装部署。本文我们将来了解一下 OLM 的基本架构和安装使用。
如何管理越来越多的 operator?OLM 给你答案
|
12月前
|
机器学习/深度学习 供应链 数据可视化
增强现实,让物流与仓储更智能!
增强现实,让物流与仓储更智能!
333 4
|
前端开发 Java 应用服务中间件
21张图解析Tomcat运行原理与架构全貌
【10月更文挑战第2天】本文通过21张图详细解析了Tomcat的运行原理与架构。Tomcat作为Java Web开发中最流行的Web服务器之一,其架构设计精妙。文章首先介绍了Tomcat的基本组件:Connector(连接器)负责网络通信,Container(容器)处理业务逻辑。连接器内部包括EndPoint、Processor和Adapter等组件,分别处理通信、协议解析和请求封装。容器采用多级结构(Engine、Host、Context、Wrapper),并通过Mapper组件进行请求路由。文章还探讨了Tomcat的生命周期管理、启动与停止机制,并通过源码分析展示了请求处理流程。
|
弹性计算 大数据 测试技术
阿里云服务器2核4G3M配置带宽收费标准及优惠价格详解
阿里云服务器2核4G配置3M带宽的价格确实因实例规格的不同而有所差异。以共享标准型s6和高主频计算型hfc6为例,其价格分别为2152.20元/年和3121.20元/年。然而,通过阿里云的促销活动,用户有机会以更低的价格购买到这种配置的服务器。根据活动情况,2核4G3M带宽的阿里云服务器的价格可能在934.13元至3603.04元之间。
446 1
|
运维 安全 Linux
【超实用秘籍】Linux文件传输新高度:10个scp命令让你瞬间变身文件传输达人,从此告别繁琐操作!
【8月更文挑战第13天】文件传输是运维工作的核心部分,尤其对Linux用户来说,了解高效且安全的传输方法非常重要。本文介绍10种scp命令的应用技巧,涵盖基础文件传输、密钥认证、目录复制等场景,助你灵活运用这一基于SSH协议的安全工具。从简单的文件传输到复杂的多主机文件迁移,scp都能轻松应对。通过本文的学习,你将能更熟练地使用scp命令,提高工作效能。
857 6
|
网络协议 安全 网络安全
【题目】【网络系统管理】2022年江苏省职业院校技能大赛 高职竞赛样题
【题目】【网络系统管理】2022年江苏省职业院校技能大赛 高职竞赛样题
【题目】【网络系统管理】2022年江苏省职业院校技能大赛 高职竞赛样题
|
JavaScript Java 数据库
考勤|基于Springboot的大学生考勤系统设计与实现(源码+数据库+文档)
考勤|基于Springboot的大学生考勤系统设计与实现(源码+数据库+文档)
739 0
【qt】最快的开发界面效率——混合编程1
【qt】最快的开发界面效率——混合编程
286 0