CodeForces #796 Div2 | 题解ABC

 

这题暴力肯定会超时,于是我们就需要思考位运算的一些有趣的性质,

参考官方解法,我们有:

x and y>0i, pi=qi=1x and y>0⇔∃i, pi=qi=1.

x xor y>0i, piqix xor y>0⇔∃i, pi≠qi.

为了满足第一个条件,找到pk = 1的最小整数k,并将1赋给qk;

如果x != 2k,第二个条件现在满足了。

否则,找到满足pj = 0的最小整数j,并将1赋给qj。


 

 

 

这题是一个比较容易想到的贪心题,

首先看看有没有偶数,如果没有,直接满足了,输出0即可;

如果不全为偶数,也就是有奇数存在,那我们最好的策略就是每一次把一个偶数与奇数相加,答案显然是奇数,输出次数即可;

如果全是偶数,那我们只需要看哪一位偶数能最快降到奇数即可,我们可以预先用一个数组来存储2的幂,这样减少复杂度。


 

C题先欠着()

 

 

 

 

 

 

 

 

 

posted @ 2022-06-06 09:45  Conqueror712  阅读(68)  评论(0)    收藏  举报