P4317 花神的數論題

2021-09-27 09:43:13 字數 1201 閱讀 9143

題目背景

眾所周知,花神多年來憑藉無邊的神力狂虐各大 oj、oi、cf、tc …… 當然也包括 ch 啦。

題目描述

話說花神這天又來講課了。課後照例有超級難的神題啦…… 我等蒟蒻又遭殃了。 花神的題目是這樣的:設 \text(i)sum(i) 表示 ii 的二進位制表示中 11 的個數。給出乙個正整數 nn ,花神要問你 \prod_^\text(i)∏

i=1n

​ sum(i) ,也就是 \text(1)\sim\text(n)sum(1)∼sum(n) 的乘積。

輸入格式

乙個正整數 n。

輸出格式

乙個數,答案模 10000007 的值。

輸入輸出樣例

輸入 #1複製

3輸出 #1複製

2說明/提示

對於 100% 的資料,n≤10^15

簡單的數字dp,我們考慮每個出現1出現的次數即可,然後就能計算答案了。

最後快速冪計算每個出現次數求積即可。

ac**:

#pragma gcc optimize(2)

#include

#define int long long

using namespace std;

const

int p=

1e7+7;

int n,a[60]

,cnt,dp[60]

[60][

60],res[60]

;int

dfs(

int pos,

int s,

int d,

int limit)

intqmi

(int a,

int b)

return res;

}int

solve

(int x)

for(

int i=

1;i<=

50&&res[i]

;i++

) ans=ans*

qmi(i,res[i]

)%p;

return ans;

}signed

main()

洛谷P4317 花神的數論題

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

P4317 花神的數論題 組合數學

定義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那麼就可以用組合數學快速計算。所以我們列舉...

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

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