Binary Colouring题解

思路

对于每一个数 $ n $ 我们将他转换为二进制,对于每一个二进制下连续的 $ 1 $ 我们可以将这个位置上的数变成 $ - 1 $ 对于高这个位置一位的那个数 $ + 1 $,对于连着的 $ - 1 $ 我们可以将本位变成 $ 1 $ 将高于这个位置一位的那个数 $ - 1 $ 一直这样维护下去就是正确答案。因为题目要求输出数组长度 $ \le 32 $ 而这样一直维护下去数组长度最大为 $ 31 $ 因为 $ n \le 2^{30} $ 所以此解法为正解,代码太短就不展示了。

posted @ 2024-05-30 21:23  CaoSheng  阅读(31)  评论(0)    收藏  举报