HDU4349--Xiao Ming's Hope(数论)
生活随笔
收集整理的這篇文章主要介紹了
HDU4349--Xiao Ming's Hope(数论)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
輸入一個n(1<=n<=108),求C(n,0),C(n,1),C(n,2)...C(n,n)有多少個奇數。
Lacus定理 http://blog.csdn.net/acm_cxlove/article/details/7844973
A、B是非負整數,p是質數。AB寫成p進制:A=a[n]a[n-1]...a[0],B=b[n]b[n-1]...b[0]。
則組合數C(A,B)與C(a[n],b[n])*C(a[n-1],b[n-1])*...*C(a[0],b[0])??modp同
所以此題中 C(n, x) 將n和x化成2進制 C(0,0)=1,C(0,1)=0,C(1,0)=1,C(1,1)=1
所以如果C(n,x)為1,那么n為0的位置x必為0,n為1的位置x為0或1
答案為2^(n的二進制表示1的個數)
#include <iostream> #include <cstdio> #include <cmath> using namespace std;int main() {int n, c;while (~scanf("%d", &n)) {c = 0;while (n) {if (n & 1) ++c;n >>= 1;}printf("%d\n", (int)pow(2, c));}return 0; }
轉載于:https://www.cnblogs.com/wenruo/p/5148499.html
總結
以上是生活随笔為你收集整理的HDU4349--Xiao Ming's Hope(数论)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WebGIS中一种根据网格索引判断点面关
- 下一篇: 梦到捡到钱是怎么回事