为什么G题目的规律是这样?怎么验证?

3 ->7->15->31....

全部评论
先构造一条由2^1,2^2,2^3....2^k构成的链,偶数可以全部连接1,所有小于2^k次的奇数可以连接2^k次, 对于大于的部分,依次按照次高位到次低位是否是0,连接到对应的2的幂次上,最后发现只有2^k-1是无法处理的,于是贪心的连到1上
1
送花
回复
分享
发布于 2023-08-09 17:59 河南
kruskal打表之后发现的,如下: 2: 0 3: 1 4: 0 5: 0 6: 0 7: 1 8: 0 9: 0 10: 0 11: 0 12: 0 13: 0 14: 0 15: 1 16: 0 17: 0 18: 0 19: 0 20: 0 21: 0 22: 0 23: 0 24: 0 25: 0 26: 0 27: 0 28: 0 29: 0 30: 0 31: 1 32: 0 33: 0 34: 0 35: 0 36: 0 37: 0 38: 0 39: 0 40: 0 41: 0 42: 0 43: 0 44: 0 45: 0 46: 0 47: 0 48: 0 49: 0 50: 0 51: 0 52: 0 53: 0 54: 0 55: 0 56: 0 57: 0 58: 0 59: 0 60: 0 61: 0 62: 0 63: 1 64: 0 65: 0 66: 0 67: 0 68: 0 69: 0 70: 0 71: 0 72: 0 73: 0 74: 0 75: 0 76: 0 77: 0 78: 0 79: 0 80: 0 81: 0 82: 0 83: 0 84: 0 85: 0 86: 0 87: 0 88: 0 89: 0 90: 0 91: 0 92: 0 93: 0 94: 0 95: 0 96: 0 97: 0 98: 0 99: 0 100: 0
1
送花
回复
分享
发布于 2023-08-10 12:50 新疆
网易互娱
校招火热招聘中
官网直投
0001 0010 0011 0100 0101 0110 0111 -> 1000(<=n的最大的2的整数次幂和前面的相连,相与的值均为0) 到1111之前的所有数我们在前面的数字中均可以找到一个数使得相与为0 比如1001 -> 1110, 1010 -> 1101, 1011 -> 1100... 1001 1010 1011 1100 1101 1110 -> 1111 (而到了全是1的这种情况,找不到0000这种的相与为0的数,所以贪心的找0001,相与为1) 最后算一下n是否为1111... =  2^k - 1 ,如果是答案就是1,否则就是0.
点赞
送花
回复
分享
发布于 2023-08-09 18:18 湖南
可以看题解,写的很详细喵
点赞
送花
回复
分享
发布于 2023-08-11 00:04 河南

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务