hdu 4349 Xiao Ming's Hope 组合数学 奇偶性

来源:互联网 发布:淘宝上买摩托靠谱吗 编辑:程序博客网 时间:2024/05/16 19:27

hdu 4349 Xiao Ming’s Hope

/* * zw.cpp * *  Created on: 2016-7-20 *      Author: callmedaddy */#include<iostream>#include<cstdio>#include<iomanip>#include<cstdlib>#include<cstring>#include<algorithm>#include<math.h>#include<ctype.h>#include<time.h>#include<stack>#include<queue>#include<bitset>#include<set>#include<map>#include<vector>#include<sstream>using namespace std;typedef long long ll;void fre(){freopen("in.txt","r",stdin);}#define MS(x,y) memset(x,y,sizeof(x))#define MC(x,y) memcpy(x,y,sizeof(x))#define zero(a) fabs(a)<eps#define equal(a,b) zero(a-b)#define ALL(c) c.begin(),c.end()const int pi=acos(-1);double e=2.718281828;const int mod=1e9;int main(){    int n;    while(~scanf("%d",&n))    {        int cnt=0;        while(1)        {            if(n==1)            {                cnt++;                break;            }            if(n&1)                cnt++;            n/=2;        }        printf("%d\n",1<<cnt);    }    return 0;}

题意:求组合数C(n,0),C(n,1),C(n,2)…C(n,n)中有多少个奇数(1<=n<=10^8)
思路:①一个新东西,如果n&m==m,C(n,m)为奇数,否则为偶数。
②把n和m化成二进制以后,由①,0&0=0,所以n里面的0对应的m里面的一定是0,1&a=a,n里面的1对应0和1都可以。所以答案ans=2^cnt,cnt是n的二进制里1的个数。


1 0
原创粉丝点击