关于分块长度

灌水区

ningago @ 2022-03-11 13:29:09

有如下两个函数返回 x 的所在块,len = \sqrt{x}

inline int get(int x)
{
    return x / len;
}
inline int get(int x)
{
    return (x - 1) / len + 1;
}

请问二者有何不同?


by 崔化博 @ 2022-03-11 13:33:34

第一个是从0开始,第二个是从1开始


by xfrvq @ 2022-03-11 13:35:12

第一种在某些时候会出问题


by 0x3ffff @ 2022-03-11 13:35:21

第一种会出问题


by 崔化博 @ 2022-03-11 13:39:41

第一种第一个块会只有 \sqrt{n}-1个数字


by 崔化博 @ 2022-03-11 13:43:31

且从0开始


by _l_l_ @ 2022-03-11 15:06:13

@ningago 第一个数组下标与块下标从 0 开始,第二个从 1 开始


|