BZOJ 3000 Big Number 數學演算法

2021-06-27 14:37:26 字數 483 閱讀 5353

題目大意:求n!在k進製下的位數

即stirling公式:

資料範圍小就暴力,資料範圍大套用stirling公式

注意先利用log來避免數字過大而失精 最後答案要開long long

#include #include #include #include #include using namespace std;

const double pi=acos(-1.0),e=exp(1.0);

int n,k;

int main()

{ int i;

while(~scanf("%d%d",&n,&k) )

{ if(n<=100)

{ double temp=0;

for(i=2;i<=n;i++)

temp+=log(i);

temp/=log(k);

cout<

bzoj3000 Big Number 斯特林公式

給你兩個整數n和k,要求你輸出n!的k進製的位數。對於100 的資料,有2 n 2 31,2 k 200,資料組數t 200。顯然答案就是log k n log k left n right logk n 然後就不會做了otz 斯特林公式 n 2 n ne n n 2 n en n 於是有ans l...

BZOJ 2440 完全平方數

time limit 10 sec memory limit 128 mb submit 966 solved 457 submit status 小 x 自幼就很喜歡數。但奇怪的是,他十分討厭完全平方數。他覺得這些 數看起來很令人難受。由此,他也討厭所有是完全平方數的正整數倍的數。然而 這絲毫不影...

BZOJ2440 完全平方數

description 小 x 自幼就很喜歡數。但奇怪的是,他十分討厭完全平方數。他覺得這些 數看起來很令人難受。由此,他也討厭所有是完全平方數的正整數倍的數。然而 這絲毫不影響他對其他數的熱愛。這天是小x的生日,小 w 想送乙個數給他作為生日禮物。當然他不能送一 個小x討厭的數。他列出了所有小x不...