P5539 【XR-3】Unknown Mother-Goose 一点想法

        ull t = (bs[i]) & (bs[i-1] >> 62) & ((bs[i-1] >> 63) | (bs[i] << 1));

对于这一步的解释

在处理临块的连续三个数时,可以发现只有两种情况,分别是 1|11和 11|1 (这里是分割线),因此我们观察第一个数(起点)只可能是上一个块的后两位,所以时bs[i-1] >> 62即可,至于第二个数也就是bs[i-1] >> 63 | b[i] << 1因为它的可能是跨块相邻的那两个数所以要补齐下一个块的数,最后一个数也就是b[i]本身了

posted @ 2025-04-30 22:29  windfallll  阅读(12)  评论(0)    收藏  举报