0x3f3f3f3f 0x开头的 是十六进制常数, 等于 十进制 1061109567
等于 二进制: 00111111 00111111 00111111 00111111

const int inf=0x3f3f3f3f -- 声明 inf 是 const int型 , const 表示 inf 一旦有了值以后就不允许(通过赋值 来)改变它的值.

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

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

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

所以在算法竞赛中,我们常采用0x3f3f3f3f来作为无穷大。0x3f3f3f3f主要有如下好处:

  • 0x3f3f3f3f的十进制为1061109567,和INT_MAX一个数量级,即10^9数量级,而一般场合下的数据都是小于10^9的。
  • 0x3f3f3f3f * 2 = 2122219134,无穷大相加依然不会溢出。
  • 可以使用memset(array, 0x3f, sizeof(array))来为数组设初值为0x3f3f3f3f,因为这个数的每个字节都是0x3

const int INF=0x3f3f3f3f;——ACM中的无穷大常量相关推荐

  1. INF=0x3f3f3f3f背后的知识

    我们知道计算机都是按照二进制存储的.在日常练习过程中,我们都会遇到INF无穷大量的问题,那么我们该怎么定义这么一个数字,下面便有一些说明: 0x3f3f3f3f的十进制是1061109567,也就是1 ...

  2. const int *,const int * const和int const *有什么区别?

    我总是搞砸了如何正确使用<code>const int* , const int * const和int const * . 是否有一组规则定义您可以做什么和不能做什么? 我想知道在分配, ...

  3. c语言中 int和const int的区别

    一.const int 和int 的区别 具体的是 int定义的是一个变量,不需要初始化const int定义的是常量,需要初始化 1.返回值 const int & 是返回这个数值的一个常量 ...

  4. QAQ……#define INF 0x3f3f3f3f 原来是定义成无穷大

    经常在参观大佬的博客的时候看到这种写法,百思不得其解, "0x3f3f3f3f "是什么?/*虽然,似乎,好像刚刚看过进制转换--就当我选择性失忆吧*/ ------------- ...

  5. c语言const 修饰二级指针,C++中const修饰二级指针(从类型‘int**’到类型‘const int**’的转换无效)...

    先上代码: void func(const int ** arg) { } int main(int argc, char **argv) { int **p; func(p); return 0; ...

  6. int i ; const int val=i ; 在C++中这种赋值对吗?

    首先这种定义方式是可以通过编译的. int i; //定义(注意是定义,意味着分配了内存)一个int型变量i,同时没有初始化.那么i的值就是分配内存位置的值,这个值可能为任意值. const int ...

  7. C++中const int*, const int * const, 和 int const *区别

    简介: 本文主要介绍C/C++中,const int*, const int * const, 和 int const *用法的区别,以及相关的示例代码. 1.const int, const int ...

  8. mysql中无穷大如何表示_编程中无穷大常量的设置技巧

    如果问题中各数据的范围明确,那么无穷大的设定不是问题,在不明确的情况下,很多程序员都取0x7fffffff作为无穷大,因为这是32-bit int的最大值.如果这个无穷大只用于一般的比较(比如求最小值 ...

  9. [ACM训练] ACM中巧用文件的输入输出来改写acm程序的输入输出 + ACM中八大输入输出格式...

    ACM中巧用文件的输入输出来改写acm程序的输入输出 经常有见大神们使用文件来代替ACM程序中的IO,尤其是当程序IO比较复杂时,可以使自己能够更专注于代码的测试,而不是怎样敲输入. C/C++代码中 ...

最新文章

  1. 旧式计算机,西雅图计算机博物馆 “复活”1973年老式计算机
  2. mysql远程连接数据库的二种方法_mysql 远程连接数据库的二种方法
  3. android: 静态XML和动态加载XML混合使用,以及重写Layout控件
  4. python中字符串添加r的作用,原始字符串不发生转义
  5. Ado.Net 实体类、数据连接类、数据访问类
  6. 选择排序:简单选择排序
  7. ESXI6.7虚拟机配置LACP静态汇聚端口网络负载均衡分流
  8. 27留数及其应用(三)
  9. IDC:2021年云上数据量超过传统数据中心,All in Cloud是趋势
  10. 美国3月通胀见顶了吗?
  11. 科来网络分析系统网络故障分析方法
  12. java自学-常见的API(String、ArryList)
  13. 关于扁平化界面风格的设计美学讨论
  14. 糖糖班趣事之棒棒糖篇
  15. Java_08 快速入门 Java常用类库
  16. hdu4114.Disney's FastPass
  17. 2022数模国赛河南赛区获奖名单
  18. 林业调查规划设计资质怎么办理?
  19. selenium实现高校班级打卡-石墨文档每日一报自动化
  20. python 一键爬取百度图片

热门文章

  1. T3-打印往来催款单时去掉表尾的【畅捷通软件】字样
  2. istio源码分析——pilot-agent如何管理envoy生命周期
  3. 把握新生代家装消费趋势,开启“双旦礼遇季”,修嗒嗒线上线下同欢庆!
  4. 学习笔记(03):大数据工程师新手必学实战:手把手教你做一份大数据行业分析报告-课程介绍...
  5. 工业废水处理专用消泡剂为何大受客户欢迎?
  6. android textview点击事件无效,textView autolink 导致点击事件无效
  7. 谈谈新的前端框架 Svelte 和现代前端框架的特点
  8. 硬盘坏了数据可以恢复吗?盘点数据恢复技巧
  9. 跳过密码打开excel表格xlsx,忘记excel表格xlsx密码如何找回?
  10. Activiti7.0进阶学习(三):assignee的值用UEL的POJO实现