bzoj 3209 花神的數論題

2022-06-01 03:45:14 字數 684 閱讀 1665

題目大意:

設 sum(i)表示i的二進位制表示中1的個數

給出乙個正整數n,求是sum(1)—sum(n)的乘積

思路:可以想到對sum的值求有多少個 然後快速冪

列舉sum的值 使用數字dp

每遇到一位1 則可以求出小於這位1所有的對於這個sum的組合數

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9

#define inf 2139062143

10#define ll long long

11#define maxn 200100

12#define mod 10000007

13using

namespace

std;

14inline ll read()

1518

while(isdigit(ch))

19return x*f;20}

21 ll n,c[80][80],g[80

],cnt,ans;

22 ll calc(int

x)23

29ll q_pow(ll bas,ll t)

3036

intmain()

37

view code

bzoj3209 花神的數論題

題意 求sum 1 sum 2 sum n 其中sum x 表示x的二進位制表達中1的數量。答案模10 7 7。n 10 15。考慮列舉sum x 的值為t,然後求有多少個不大於n的正整數的二進位制表達恰好有t個1,設這個答案為f t 這一部分可以用數字dp來實現。例如要求解1.12,可以將其分成1...

bzoj 3209 花神的數論題

設 sum i 表示 i 的二進位制表示中 1 的個數。給出乙個正整數 n 求 i 1ns um i 枚下1的個數,那麼題目就轉換成了1 n有多少個數的二進位制有x個一。這就很容易數字dp了。f i j 表示i位第一位為1,共j個一的數的數目,g i j 表示i位第一位為0,共j個一的數的數目。容易...

BZOJ3209 花神的數論題

bzoj3209 花神的數論題 背景眾所周知,花神多年來憑藉無邊的神力狂虐各大 oj oi cf tc 當然也包括 ch 啦。描述話說花神這天又來講課了。課後照例有超級難的神題啦 我等蒟蒻又遭殃了。花神的題目是這樣的 設 sum i 表示 i 的二進位制表示中 1 的個數。給出乙個正整數 n 花神要...