【題目描述】
背景眾所周知,花神多年來憑藉無邊的神力狂虐各大 oj、oi、cf、tc …… 當然也包括 ch 啦。
描述話說花神這天又來講課了。課後照例有超級難的神題啦…… 我等蒟蒻又遭殃了。
花神的題目是這樣的
設 sum(i) 表示 i 的二進位制表示中 1 的個數。給出乙個正整數 n ,花神要問你
派(sum(i)),也就是 sum(1)—sum(n) 的乘積。
乙個正整數 n。
乙個數,答案模 10000007 的值。
樣例輸入一
3樣例輸出一
2對於樣例一,1*1*2=2;
資料範圍與約定
對於 100% 的資料,n≤10^15
原創 memphis
【題解】
數字dp裸題
/* --------------user vanisher
problem bzoj-3209
----------------*/
# include # define ll long long
# define p 10000007
# define n 110
using namespace std;
ll f[n][n][2],h[n],n,len;
ll read()
while (ch>='0'&&ch<='9')
return tmp*fh;
}ll mypow(ll x, ll y)
return x;
}int main()
f[len][0][0]=1; f[len][1][1]=1;
for (ll i=len-1; i>=1; i--)
} else
} }ll ans=1;
for (ll i=1; i<=len; i++)
ans=ans*mypow(i,f[1][i][0]+f[1][i][1])%p;
printf("%lld\n",ans);
return 0;
}
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 花神要...