图论中的memset
和0x3f
写此博客的背景
相信有很多同学在看别人图论专题的题解、板子的时候经常看到下面两句:
const int INF = 0x3f3f3f3f;
memset(d, INF, sizeof(d));
或者下面这样:
memset(d, 0x3f, sizeof(d));
很多同学都不明所以,只知道是将d数组中的所有元素初始化成INF,但是至于为什么选用0x3f3f3f3f
和函数memset
的原理都不清楚,看到别人这样用,自己也这样用,不清楚为什么,于是前几天同学来问我的时候,就出现了以下WA
的代码片段:
const int INF = 1e5;
// ...
memset(d, INF, sizeof(d));
以及: