題目:
算是挺簡單的數字dp吧,但還是花了好久才弄明白...
又參考了部落格:
先預處理開頭是 0/1 的 i 位數中有 j 個1的數的數量,然後按位一邊限制大小,一邊分成0開頭或1開頭統計答案。
**如下:
#include#include#include
using
namespace
std;
typedef
long
long
ll;ll mx,f[
65][65],g[65][65],ans=1,mod=10000007
;ll pw(ll a,ll b)
ll cal(ll n)
return (ans*c)%mod;
}int
main()
printf(
"%lld\n
",cal(mx));
return0;
}
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 花神要...