眾所周知,花神多年來憑藉無邊的神力狂虐各大 oj、oi、cf、tc …… 當然也包括 ch 啦。
話說花神這天又來講課了。課後照例有超級難的神題啦…… 我等蒟蒻又遭殃了。 花神的題目是這樣的:設 sum(i)表示 i的二進位制表示中 1的個數。給出乙個正整數 n,花神要問你 ∏i=1nsum(i) ,也就是sum(1)∼sum(n)的乘積。
輸入格式:
乙個正整數 n。
輸出格式:
乙個數,答案模 10000007 的值。
輸入樣例#1: 複製
3
輸出樣例#1: 複製
2
對於 100% 的資料,n≤10^15
solution
數字dp
但是不是直接處理出乘積,而是列舉$i$,處理出有多少個數恰好有$i$個1.
最後直接用快速冪乘起來即可。
code
#include#define ll long long#define mod 10000007
using
namespace
std;
ll n;
ll mpow(ll a, ll b)
ll dp[
55][2][55][55
];int num[55
];ll dfs(
int dep, int up, int sum, int
d) ll ans[
55];
ll cot(ll x)
for(int i = 1; i <= 50; i ++)
ll res = 1
;
for(int i = 1; i <= 50; i ++)
res = (res * mpow(i, ans[i])) %mod;
return
res;
}int
main()
洛谷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...
洛谷 P4317 花神的數論題(數字dp)
題目背景 眾所周知,花神多年來憑藉無邊的神力狂虐各大 oj oi cf tc 當然也包括 ch 啦。題目描述 話說花神這天又來講課了。課後照例有超級難的神題啦 我等蒟蒻又遭殃了。花神的題目是這樣的 設 text i sum i 表示 ii 的二進位制表示中 11 的個數。給出乙個正整數 nn 花神要...