P4317 花神的數論題 組合數學

2021-10-24 14:50:35 字數 1029 閱讀 6287

定義sum

(i

)sum(i)

sum(i)

表示i

ii二進位制下1

11的個數

求∏ i=

1nsu

m(i)

\prod_^nsum(i)

i=1∏n​

sum(

i)考慮計算有i

ii個1

11的有多少個數字。

對於n

nn的每乙個1

11,我們可以知道如果這一位為0

00那麼就可以用組合數學快速計算。

所以我們列舉個j

jj表示固定前j

jj位為最大值然後用組合數學計算。

時間複雜度o

(log⁡2

n)

o(\log^2 n)

o(log2n)

#include

#include

#include

#define ll long long

using

namespace std;

const ll xjq=

10000007

;ll n,c[

100]

[100

],ans;

ll power

(ll x,ll b)

return ans;

}int

main()

ll x=n,z=0;

while

(x)x-

=x&-x,z++

;for

(ll i=

1;i<

56;i++)if

(now>i)

break;}

k+=(z==i)

; ans=ans*

power

(i,k)

%xjq;

}printf

("%lld"

,ans)

;}

P4317 花神的數論題

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

洛谷P4317 花神的數論題

話說花神這天又來講課了。課後照例有超級難的神題啦 我等蒟蒻又遭殃了。花神的題目是這樣的 設 text i 表示 i 的二進位制表示中 1 的個數。給出乙個正整數 n 花神要問你 prod text i 也就是 text 1 sim text n 的乘積。設 f i 為有 i 個一的方案數。可以用組合...

洛谷 P4317 花神的數論題(數字dp)

用數字dp計算有 n以內的數字 有k 個 1的數字有多少個,然後快速冪。數字dp 直接在二進位制位上進行列舉。坑點 1e7 7 不是素數,但數字dp 內部無須取模數值不會爆long long include using namespace std typedef long long ll const...