3.16阿里云笔试第一题思路

首先题目要求异或小于与的值,那么按位进行操作,然后分别考虑n为奇偶的情况

(x,y)一共有四种可能的取值,分别在n为奇数和偶数间讨论

当n为奇数的时候,考虑(0,1)(1,1)(0,0)这三种情况,因为(1,0)是一定不满足x小于等于y的,
针对于y取1的情况,只能是全1,此时n为奇数所以异或也是1,即(1,1),方案只有一种
而针对于y取0,说明不是全1,那么这时候x也只能取0,即取偶数个1的情况异或为1,取偶数个1方案为2^n-1。

当n为偶数,同样考虑上述三情况。

针对于(1,1),y取1,同样要是全1,此时n为偶数,x不可能取1,所以舍弃。
针对(0,1),y取1,即为全1,n为偶数,x取0符合,方案只有一种。
针对(0,0),1取偶数个1,可以达到这种情况,方案同样为2^n-1
但这时候要考虑(0,1)出现的位置,有可能在任意位置出现,且出现之后,对于后面10的选择就可以不用看了,所以要对出现的位置穷举并求和,前面的为(0,0)这种情况,后面的10可以随便选,即为下图的式子,然后化简即可得到偶数情况的个数

全部评论

相关推荐

屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
07-07 14:30
复旦大学 Java
遇到这种人我也不知道说啥了
无能的丈夫:但我觉得这个hr语气没什么问题啊(没有恶意
点赞 评论 收藏
分享
评论
3
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务