Binary Colouring题解
思路
对于每一个数 $ n $ 我们将他转换为二进制,对于每一个二进制下连续的 $ 1 $ 我们可以将这个位置上的数变成 $ - 1 $ 对于高这个位置一位的那个数 $ + 1 $,对于连着的 $ - 1 $ 我们可以将本位变成 $ 1 $ 将高于这个位置一位的那个数 $ - 1 $ 一直这样维护下去就是正确答案。因为题目要求输出数组长度 $ \le 32 $ 而这样一直维护下去数组长度最大为 $ 31 $ 因为 $ n \le 2^{30} $ 所以此解法为正解,代码太短就不展示了。
本文来自 CaoSheng 的 Blogs,如需转载请标出原文链接:https://www.cnblogs.com/CaoSheng-blog/p/18223263

浙公网安备 33010602011771号