HDU 4349(Lucas 变形)

来源:互联网 发布:eve知乎 编辑:程序博客网 时间:2024/05/28 04:53

hdu 4349
题目大意:
求组合数(n0)(n1)(nn)中计算结果为偶数的个数;
思路:已知(nm)(n>m)为奇数,当且仅当(nm)=m时为奇数;
(nm)(n2m2)(n%2m%2)(mod2),
又已知(01)=0,(11)=1,(10)=1,(00)=1,
即求取n中1的个数;

#include <iostream>#include <cstdio>using namespace std;int main(){    int n;    while (~scanf("%d", &n))    {        int cnt = 0;        while (n)        {            if (n & 1)            {                cnt++;            }            n >>= 1;        }        printf("%d\n", (1 << cnt));    }    return 0;}
0 0
原创粉丝点击