hdu 4349 Xiao Ming's Hope lucas
给一个n, 求C(n, 0), C(n, 1), ..........C(n, n)里面有多少个是奇数。
我们考虑lucas定理, C(n, m) %2= C(n%2, m%2)*C(n/2, m/2)%2, C(n/2, m/2) = C(n/2%2, m/2%2)*C(n/2/2, m/2/2), 这样一直递归下去,直到m为0。 我们知道如果一个数是奇数, 那么它的所有因子都是奇数, 对应于上面的式子, n%2是偶数的时候, m%2也必须是偶数才可以, 而n%2是奇数的时候, m%2的值则没有要求。 而n/2, 相当于是二进制的n向右移了一位。所以最后的结果相当于是2^num, num是n的二进制中1的个数。
#include <iostream>
#include <vector>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <map>
#include <set>
#include <string>
#include <queue>
#include <stack>
#include <bitset>
using namespace std;
#define pb(x) push_back(x)
#define ll long long
#define mk(x, y) make_pair(x, y)
#define lson l, m, rt<<1
#define mem(a) memset(a, 0, sizeof(a))
#define rson m+1, r, rt<<1|1
#define mem1(a) memset(a, -1, sizeof(a))
#define mem2(a) memset(a, 0x3f, sizeof(a))
#define rep(i, n, a) for(int i = a; i<n; i++)
#define fi first
#define se second
typedef pair<int, int> pll;
const double PI = acos(-1.0);
const double eps = 1e-;
const int mod = 1e9+;
const int inf = ;
const int dir[][] = { {-, }, {, }, {, -}, {, } };
int main()
{
int n;
while(scanf("%d", &n)!=EOF) {
int ans = ;
while(n) {
if(n&)
ans++;
n>>=;
}
printf("%d\n", <<ans);
}
return ;
}
hdu 4349 Xiao Ming's Hope lucas的更多相关文章
- HDU 4349 Xiao Ming's Hope lucas定理
Xiao Ming's Hope Time Limit:1000MS Memory Limit:32768KB Description Xiao Ming likes counting nu ...
- HDU 4349 Xiao Ming's Hope [Lucas定理 二进制]
这种题面真是够了......@小明 题意:the number of odd numbers of C(n,0),C(n,1),C(n,2)...C(n,n). 奇数...就是mod 2=1啊 用Lu ...
- HDU 4349 Xiao Ming's Hope 找规律
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4349 Xiao Ming's Hope Time Limit: 2000/1000 MS (Java/ ...
- HDU 4349——Xiao Ming's Hope——————【Lucas定理】
Xiao Ming's Hope Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- hdu 4349 Xiao Ming's Hope 规律
Xiao Ming's Hope Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- HDU 4349 Xiao Ming's Hope
非常无语的一个题. 反正我后来看题解全然不是一个道上的. 要用什么组合数学的lucas定理. 表示自己就推了前面几个数然后找找规律. C(n, m) 就是 组合n取m: (m!(n-m!)/n!) 假 ...
- HDU 4349 Xiao Ming's Hope 组合数学
题意:给你n,问在C(n,1),C(n,2)...C(n,n)中有多少个奇数. 比赛的时候打表看出规律,这里给一个数学上的说明. Lucas定理:A,B非负整数,p是质数,A,B化为p进制分别为a[n ...
- HDU 4349 Xiao Ming's Hope
有这样一个性质:C(n,m)%p=C(p1,q1)*C(p2,q2).......%p,其中pkpk-1...p1,qkqk-1...q1分别是n,m在p进制下的组成. 就完了. #include&l ...
- HDU 5433 Xiao Ming climbing dp
Xiao Ming climbing Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://bestcoder.hdu.edu.cn/contests/ ...
随机推荐
- fatal error LNK1123: failure during conversion to COFF: file invalid or corr
新装VS2010出现标题的错误,使用了下面的方法,不行 这个是由于日志文件引起的,可以将 项目\属性\配置属性\清单工具\输入和输出\嵌入清单:原来是"是",改成"否&q ...
- ping时不知道ping那个Ip的解决办法
利用命令:nslookup Windows+R键,输入CMD,输入命令nslookup www.baidu.com OK!这得在联网情况下,如果本身nslookup就不行的话,可不可以认为网络就不好使 ...
- mysql 正确的关闭方式
./bin/mysqladmin -uroot -p123456 -S /home/allen/var/mysql/mysql.sock shutdown
- input 属性
1.readonly="readonly" 用来表示 input只能读写.
- Hadoop基础概念介绍
基于YARN的配置信息, 参见: http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/ hadoop入门 - 基础概念 ...
- android中ScrollView和GridView/ListView共存时,ScrollView不在顶部的解决方法
listView.setFocusable(false); gridView.setFocusable(false); 这个必须在代码中写,xml文件中设置不起作用 原文:http://stackov ...
- HDU 5446 Unknown Treasure(Lucas定理+CRT)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5446 [题目大意] 给出一个合数M的每一个质因子,同时给出n,m,求C(n,m)%M. [题解] ...
- 疯狂的补贴,广州司机都被Uber触动
“上线的司机起码少了一半.” 或许是因为长期工作超过12个小时的缘故,39岁的广州人民优步司机姜德昌看上去双眼浮肿,但精力充沛.这是5月8日的一个下午,一周之前他所服务的Uber广州分公司被查封. 据 ...
- UVA-Matrix Chain Multiplication(栈)
Matrix Chain Multiplication Suppose you have to evaluate an expression like A*B*C*D*E where A,B,C, ...
- 【Android界面实现】使用Canvas对象实现“刮刮乐”效果
在淘宝.京东等电商举办活动的时候,常常能够看到在移动client推出的各种刮奖活动,而这样的活动也受到了非常多人的喜爱.从client的体验来说,这样的效果应该是通过网页来实现的,那么,我们使用And ...