题意: Each line contains a integer n(1<=n<=10^8) 
         Output a single line with the number of odd numbers of C(n,0),C(n,1),C(n,2)...C(n,n).
      
       括弧[开始做的时候还是对统计二进制1的个数好像还是比较懵的.现在是会了
      0. 看(0,0)=1 (1,0)=(1,1)=1  (0,1)=0
      1. 那么把(n,i)的n,i都转化为二进制的话也是看对应位置上的01搭配之后的奇偶性就可以了.
      2. 知道了0.1.就可以找01搭配的规律了,n的二进制为全0的情况根本不存在,  n的二进制对应为1的时候,无论i是多少 {0,1}, 这一位参照0.算出来的结果都是 1 。也就是对n中的每一位二进制1对应的都有不同的i{0,1}值集合去匹配,就是2种情况.
      3. 最终统计一下n中二进制1的个数,计算一下这个个数对下对应的{0,1}集合总的情况就是了.

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <map>
typedef long long ll;
using namespace std;
int main()
{int n;while(scanf("%d",&n)!=EOF){
//        ll ans=0;
//        while(n){if(n&1) ans++;n>>=1;}ll ans=__builtin_popcount(n);printf("%d\n",(1<<ans));}return 0;
}

总结:总的来说就是判断组合数为奇偶的情况,上面这道题对应的n的值比较大,是比较优的算法
当n比较小的时候还可以用下面的这条性质:C(n,k) ((n&k)==k)成立的话就是奇数,反之为偶数(nefu 600)

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <map>
typedef long long ll;
using namespace std;
int main()
{int n,k;while(scanf("%d%d",&n,&k)!=EOF){if((n&k)==k)cout<<"ODD"<<endl;else cout<<"EVEN"<<endl;}return 0;
}

hdu4349 Xiao Ming's Hope【C(n,m)的奇偶性】相关推荐

  1. 【杭电】[4349]Xiao Ming's Hope

    上次比赛问的是 杨辉三角第n行奇数的个数 和这个本质上是一样的 lucas定理的推广 参考了宇神的博客 hdoj 4349 Xiao Ming's Hope [lucas 推广] #include&l ...

  2. 数论(Lucas定理) HDOJ 4349 Xiao Ming's Hope

    题目传送门 题意:求C (n,0),C (n,1),C (n,2)...C (n,n)中奇数的个数 分析:Lucas 定理:A.B是非负整数,p是质数.AB写成p进制:A=a[n]a[n-1]...a ...

  3. hdu 4349——Xiao Ming's Hope

    题意:给定n,让求c(n,0),c(n,1)--c(n,n)中有多少奇数. 思路:本题为Lucas定理推导题,我们分析一下 C(n,m)%2,那么由lucas定理,我们可以写 成二进制的形式观察,比如 ...

  4. HDU 4349 Xiao Ming#39;s Hope 组合数学

    题意:给你n,问在C(n,1),C(n,2)...C(n,n)中有多少个奇数. 比赛的时候打表看出规律,这里给一个数学上的说明. Lucas定理:A,B非负整数,p是质数,A,B化为p进制分别为a[n ...

  5. [数学基础] 2 组合数

    组合数 1. 求组合数 根据不同的数据范围,求组合数也可以运用不同的方法.由于这是中学的内容,所以这里就不详细介绍了. 求解的总的式子: C a b = a ! b ! ( a − b ) ! C_a ...

  6. 组合数学 —— 组合数取模

    [概述] 组合数取模,即计算组合数 ,由于 ,同余定理对除法不适用,因此需要使用别的方法来解决这个问题 常见的方法有:使用逆元对组合数取模.递推打表取模.卢卡斯定理.扩展卢卡斯定理等,这些方法应用的场 ...

  7. RabbitMQ 入门系列(6)— 如何保证 RabbitMQ 消息不丢失

    1. 消息丢失源头 RabbitMQ 消息丢失的源头主要有以下三个: 生产者丢失消息 RabbitMQ 丢失消息 消费者丢失消息 下面主要从 3 个方面进行说明并提供应对措施 2. 生产者丢失消息 R ...

  8. 2016ACM/ICPC亚洲区大连站现场赛题解报告(转)

    http://blog.csdn.net/queuelovestack/article/details/53055418 下午重现了一下大连赛区的比赛,感觉有点神奇,重现时居然改了现场赛的数据范围,原 ...

  9. javascript实例

    数组排序 ①冒泡排序 思路: 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所有的元素 ...

最新文章

  1. Nat. Rev. Neurol. | 机器学习在神经退行性疾病诊断和治疗中的应用
  2. python 视频剪裁,剪切,合并
  3. 职场思想分享002 | 入职第一个月工资这样花,一年内工资至少再涨50%!
  4. 通过微信企业号发送zabbix报警
  5. 基于PyTorch的GAN框架TorchGAN:用架构级API轻松定制GAN项目
  6. java线程之基础学习
  7. C# Task 暂停与取消
  8. python gifmaze_Windows平台python验证码识别
  9. 内存总是不够?HBaseGeoMesa配置优化了解一下
  10. c语言什么叫为代码写注释算法,急!-伪代码不知哪位高手能够告诉我,什么是伪代码?伪代码编 爱问知识人...
  11. python实现的个人税后工资计算器
  12. hog特征提取python代码_80行Python实现-HOG梯度特征提取(转载)
  13. 澳洲计算机信息安全专业,澳洲网络信息安全专业有哪些牛校?本科硕士有哪些方向可以选择?...
  14. python中的多线程 GIL(全局解释器锁) 死锁与递归锁
  15. 多重背包问题——庆功会
  16. GStreamer学习笔记
  17. python时间索引_Python时间戳作为索引
  18. 【论文阅读】Semi-supervised Multi-instance Learning with Density Peaks Clustering
  19. 网页前端(HTML)
  20. 三级分销如何合规分账?

热门文章

  1. Java与C++的几个显著不同
  2. Redhat7修改默认运行级别方法
  3. Ubuntu12.04 VMware Tools的安装
  4. 未能找到类型或命名空间名称_命名空间详解
  5. 一秒解决CentOS下service 功能 不能使用 bash: service: command not found
  6. .net运行项目的几种形式
  7. videoview 播放视频
  8. day8--socketserver
  9. Android SurfaceView的生命周期
  10. C++的iostream标准库介绍+使用详解(转)