您的位置:首页 > 其它

HDU 4349(Lucas 变形)

2016-04-05 21:40 351 查看
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hdu4349 lucas