• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

f-6题解

开发技术 开发技术 2周前 (05-01) 6次浏览

  链接:https://vjudge.net/contest/436484#problem/F  

  这个题二进制思维题,首先第一点按位且运算只要这一位上有一个是0那么这一位进行多少次按位且都是0。

  题目的意思就是在所有的k位二进制数里挑n个数满足这N个数的按位且运算和是0且n个数的和加起来最大。

  理解题意的话那其实就很简单了,我们要想n个数按位且和位0那么就需要这些数中二进制的每一位都要至少有一个0才可以,但是我们又想让总和最大,那就需要二进制中每一位为1的数字越多越好,也就是只要有一个0就行了,因为在加法运算里0没有想和最大必须的让1的数量最多,但是又得至少有一个0所以只要有每一位只要一个数字那一位是0其余都是1就好了(这个理解不了就没法了)。

  然后理解了就很简单了啊,答案就是n^k,打个快速幂板子就好了。


程序员灯塔
转载请注明原文链接:f-6题解
喜欢 (0)