[Lucas定理推广] hdu 4349 and poj 3219
2014-11-10 15:16
309 查看
hdu 4349 Xiao Ming's Hope
题意:
给n,求c(n,0),c(n,1)....c(n,n)中奇数的个数
思路:
因为只有奇偶区别,想到二进制
运用Lucas定理,将n,m(0~n) 化为二进制数
a,b为n,m的二进制数
根据定理 C(n,m)=C(a
,b
)*C(a[n-1],b[n-1])*...*C(a[0],b[0])
然后因为C(0,1)=0、C(0,0)=1、C(1,0)=1、C(1,1)=1
为了保证C(n,m)=1
那么当n的二进制位上是0的时候,m的相应位置就必须是0
如果n的二进制位上是1的话,m是0或1都无所谓,就有两种取法
所以最后的答案就是2^cnt,cnt为n的二进制位上1的个数。
代码:
题意:
给n、m,问C(n,m)的奇偶性
思路:
上面的Lucas定理结论,
n和m全都转为二进制数
n的二进制位上为0的位置,如果对应m的位置上不是0,则结果为0
否则为1
那么其实就是对m来说,m上面是1的地方 对应过去是0 就是0
那么就是 (n&m)!=m 就为0 否则为1
代码:
题意:
给n,求c(n,0),c(n,1)....c(n,n)中奇数的个数
思路:
因为只有奇偶区别,想到二进制
运用Lucas定理,将n,m(0~n) 化为二进制数
a,b为n,m的二进制数
根据定理 C(n,m)=C(a
,b
)*C(a[n-1],b[n-1])*...*C(a[0],b[0])
然后因为C(0,1)=0、C(0,0)=1、C(1,0)=1、C(1,1)=1
为了保证C(n,m)=1
那么当n的二进制位上是0的时候,m的相应位置就必须是0
如果n的二进制位上是1的话,m是0或1都无所谓,就有两种取法
所以最后的答案就是2^cnt,cnt为n的二进制位上1的个数。
代码:
#include"cstdlib" #include"cstdio" #include"cstring" #include"cmath" #include"stack" #include"algorithm" #include"iostream" #define ll __int64 using namespace std; int main() { int n; while(cin>>n) { int cnt=0; while(n) { if(n%2==1) cnt++; n/=2; } printf("%d\n",1<<cnt); } return 0; }poj 3219 Binomial Coefficients
题意:
给n、m,问C(n,m)的奇偶性
思路:
上面的Lucas定理结论,
n和m全都转为二进制数
n的二进制位上为0的位置,如果对应m的位置上不是0,则结果为0
否则为1
那么其实就是对m来说,m上面是1的地方 对应过去是0 就是0
那么就是 (n&m)!=m 就为0 否则为1
代码:
#include"cstdlib" #include"cstdio" #include"cstring" #include"cmath" #include"stack" #include"algorithm" #include"iostream" #define ll __int64 using namespace std; int main() { int n,m; while(cin>>n>>m) { if((n&m)!=m) puts("0"); else puts("1"); } return 0; }
相关文章推荐
- 【HDU 4349】【组合数结论 LUCAS定理推广】 Xiao Ming's Hope【C[n][m]为奇数的个数】t
- hdu 4349 求C(n,0),C(n,1),C(n,2)...C(n,n).当中有多少个奇数 (Lucas定理推广)
- hdu 4349 lucas定理的推广
- HDU 4349-Xiao Ming's Hope(Lucas定理的推广)
- HDU 4349 Xiao Ming's Hope(数学题,Lucas定理)
- hdu 4349 Xiao Ming's Hope(Lucas定理)
- HDU 4349——Lucas定理的巧妙应用
- hdu 4349 Xiao Ming's Hope(Lucas定理)
- HDU 4349 Xiao Ming's Hope (Lucas定理的应用)
- HDU 4349 Xiao Ming's Hope(思路 lucas定理)
- [HDU 4349] Xiao Ming's Hope (lucas定理)
- HDU 4349 Xiao Ming's Hope(Lucas定理的推导)
- Xiao Ming's Hope HDU - 4349(Lucas定理)
- HDU 4349 Xiao Ming's Hope (组合数的奇偶性&&Lucas定理)
- hdu 4349 Xiao Ming's Hope,lucas定理
- HDU 4349 && POJ 3219 Lucas有趣应用c
- hdu - 4349 - Xiao Ming's Hope - 大大的Lucas定理 && 小小的乘法逆元
- HDU 4349——Xiao Ming's Hope——————【Lucas定理】
- hdu 4349(Lucas定理)
- hdu 4349 Xiao Ming's Hope (Lucas定理)