hdu4349 Xiao Ming's Hope【C(n,m)的奇偶性】
题意: 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)的奇偶性】相关推荐
- 【杭电】[4349]Xiao Ming's Hope
上次比赛问的是 杨辉三角第n行奇数的个数 和这个本质上是一样的 lucas定理的推广 参考了宇神的博客 hdoj 4349 Xiao Ming's Hope [lucas 推广] #include&l ...
- 数论(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 ...
- hdu 4349——Xiao Ming's Hope
题意:给定n,让求c(n,0),c(n,1)--c(n,n)中有多少奇数. 思路:本题为Lucas定理推导题,我们分析一下 C(n,m)%2,那么由lucas定理,我们可以写 成二进制的形式观察,比如 ...
- 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 ...
- [数学基础] 2 组合数
组合数 1. 求组合数 根据不同的数据范围,求组合数也可以运用不同的方法.由于这是中学的内容,所以这里就不详细介绍了. 求解的总的式子: C a b = a ! b ! ( a − b ) ! C_a ...
- 组合数学 —— 组合数取模
[概述] 组合数取模,即计算组合数 ,由于 ,同余定理对除法不适用,因此需要使用别的方法来解决这个问题 常见的方法有:使用逆元对组合数取模.递推打表取模.卢卡斯定理.扩展卢卡斯定理等,这些方法应用的场 ...
- RabbitMQ 入门系列(6)— 如何保证 RabbitMQ 消息不丢失
1. 消息丢失源头 RabbitMQ 消息丢失的源头主要有以下三个: 生产者丢失消息 RabbitMQ 丢失消息 消费者丢失消息 下面主要从 3 个方面进行说明并提供应对措施 2. 生产者丢失消息 R ...
- 2016ACM/ICPC亚洲区大连站现场赛题解报告(转)
http://blog.csdn.net/queuelovestack/article/details/53055418 下午重现了一下大连赛区的比赛,感觉有点神奇,重现时居然改了现场赛的数据范围,原 ...
- javascript实例
数组排序 ①冒泡排序 思路: 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所有的元素 ...
最新文章
- Nat. Rev. Neurol. | 机器学习在神经退行性疾病诊断和治疗中的应用
- python 视频剪裁,剪切,合并
- 职场思想分享002 | 入职第一个月工资这样花,一年内工资至少再涨50%!
- 通过微信企业号发送zabbix报警
- 基于PyTorch的GAN框架TorchGAN:用架构级API轻松定制GAN项目
- java线程之基础学习
- C# Task 暂停与取消
- python gifmaze_Windows平台python验证码识别
- 内存总是不够?HBaseGeoMesa配置优化了解一下
- c语言什么叫为代码写注释算法,急!-伪代码不知哪位高手能够告诉我,什么是伪代码?伪代码编 爱问知识人...
- python实现的个人税后工资计算器
- hog特征提取python代码_80行Python实现-HOG梯度特征提取(转载)
- 澳洲计算机信息安全专业,澳洲网络信息安全专业有哪些牛校?本科硕士有哪些方向可以选择?...
- python中的多线程 GIL(全局解释器锁) 死锁与递归锁
- 多重背包问题——庆功会
- GStreamer学习笔记
- python时间索引_Python时间戳作为索引
- 【论文阅读】Semi-supervised Multi-instance Learning with Density Peaks Clustering
- 网页前端(HTML)
- 三级分销如何合规分账?
热门文章
- Java与C++的几个显著不同
- Redhat7修改默认运行级别方法
- Ubuntu12.04 VMware Tools的安装
- 未能找到类型或命名空间名称_命名空间详解
- 一秒解决CentOS下service 功能 不能使用 bash: service: command not found
- .net运行项目的几种形式
- videoview 播放视频
- day8--socketserver
- Android SurfaceView的生命周期
- C++的iostream标准库介绍+使用详解(转)