定義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
(log2
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...