pku 3219 Binomial Coefficients 位运算相关的三种方法

来源:互联网 发布:mac版本不支持银联 编辑:程序博客网 时间:2024/06/06 19:00

     此题题意很清晰,就是判断二项式系数的奇偶性。这里我介绍此题的三种解法,其中第一种是我自己想的,后面两种是参照别人的!

法一:

题意可以转化为n!/(k!*(n-k)!)中分子与分母2的幂是否相等,如果相等则是奇数,否则为偶数。即转化为求n!中2的幂,根据n的二进制表示(不妨设位为1的数位(右向左从0开始)分别为a[0],a[1]...)可以把n!分成1~1<<a[0], (1<<a[0])+1~(1<<a[0])+1<<a[1],....,对于每一段又分成2的最高次幂为1,2,...,用其乘以元素个数,最后相加即可!

法二:

直接统计2的个数!

法三:

c(n,k)(k<=n)的奇偶性取决于(n-k)与k的二进制表达式是否存在同一位上的两个数码均为1,若存在,则为偶数,反之为奇数