预处理log2模板

void init_log2()
{
    for(int i=1;i<=n;i++) lg[i]=lg[i-1]+((1<<lg[i-1])==i);
}

这样预处理后,\(\log_2x\) 取整的结果就是 lg[x]-1

具体原因可以通过枚举找到

posted @ 2021-11-19 19:32  yhang323  阅读(177)  评论(0)    收藏  举报