POJ 3219

题意如下:

二项式系数C(n, k)因它在组合数学中的重要性而被广泛地研究。二项式系数可以如下递归的定义:

C(1, 0) = C(1, 1) = 1;
C(n, 0) = 1对于所有n > 0;
C(n, k) = C(n − 1, k − 1) + C(n − 1, k)对于所有0 < kn

给出nk,你要确定C(n, k)的奇偶性

我是用不怎么牛逼的做法 虽然也是0MS

The parity of C(n, k) can be determined by calculating the exponent of 2 in its factorization.
 c(m,n) = m!/n!/(m-n)!
分别求出m,n,m-n三个阶乘里面有多少个2,只要m!中2的个数多余n!中2的个数加上(m-n)!中2的个数,那么结果就是偶数

CODE如下:
#include <stdio.h>

int main()
{
 int n,m,k;
 int a,b,c;
 while(scanf("%d%d",&n,&k)!=EOF)
 {
     m=n-k; a=b=c=0;
        while(n=n>>1) a+=n;
        while(m=m>>1) b+=m;
        while(k=k>>1) c+=k;
        if(a-b>c) printf("0\n");
        else printf("1\n");

    }
}


牛逼的结论为····如果n&k==k就为奇数 否则就是偶数 看到了一个证明 但没有看懂···

posted on 2008-05-21 00:43 Victordu 阅读(486) 评论(1)  编辑 收藏 引用

评论

# re: POJ 3219 2009-02-28 16:10 KR

n&k ==k 提交后WA。。。。。。  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2008年5月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

统计

常用链接

留言簿(5)

随笔档案(46)

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜