为什么我的Floyd会输出负数啊?
为什么我的代码写对了却全都爆零了啊?

那么很可能是你的INF取大/小了!

那么inf到底应该取什么值呢?

首先,inf应该要比一般的题目中出现的数据要大,但是又不能超过max_int。

1e9是一个好选择!

为什么不是0x7fffffff呢?这不是int的最大值吗

因为有的时候(例如Floyd等算法)会出现两个inf相加的情况,如果inf取max_int则加法会造成溢出,而取1e9则不会出现这样的情况。

但是初始化会不会很麻烦?

答案是肯定的,谁都不愿意为了一个初始化去写循环,又慢而且还麻烦。

我们注意到0x3f3f3f3f的每8位(int为32位)二进制位上都是0x3f,所以我们可以方便的使用memset来方便的初始化数组

而0x3f3f3f3f等于1061109567,2*inf=2122219134,即使是两倍的inf也并不会溢出

综上所述,inf的选择应该是0x3f3f3f3f
当然如果没有加法操作用0x7f7f7f7f也是可以的,初始化时直接用memset 0x7f就可以了

最新文章

  1. New Training Table
  2. ubuntu安装erlang
  3. 【GoLang】函数作为 类型 和 值
  4. Android之ADB指令
  5. 以编程方式使用 Word 中的内置对话框
  6. unsigned int 转 RGB
  7. Spring框架下的单元测试方法
  8. Max Sum of Max-K-sub-sequence(单调队列)
  9. Android 开发环境搭建之——ADT-Bundle for Windows
  10. mysql中的coalesce用法
  11. Azure Function & AWS Function With C#
  12. Orchard详解--第九篇 拓展模块及引用的处理
  13. [转]SASS用法指南
  14. MarkDown常用格式
  15. CF1106F Lunar New Year and a Recursive Sequence 原根、矩阵快速幂、BSGS
  16. C# ,asp.net 获取当前,相对,绝对路径
  17. Kubernetes才是微服务和DevOps的桥梁
  18. GraphQL和RESTful的区别
  19. python中的异常处理机制
  20. 对接融云即时通讯组件SDK,轻松实现App聊天室

热门文章

  1. create sequence
  2. 增量式PID的matlab实现
  3. map容器结构体离散化
  4. 补课:PageRank
  5. spring的AOP个人理解和使用
  6. oracle基础开发工具及常用命令
  7. pta 习题集 5-15 数组循环左移
  8. SQL的子查询操作
  9. linux设备驱动开发详解 笔记
  10. Python开发【笔记】:sort排序大法