BZOJ 2849 和谐串 发表于 2017-04-04 | 更新于 2018-06-17 LinkSolution显然可以暴力DP。对小范围打表找规律可以得结论。 然后套Wallis公式 (2n)!!(2n−1)!!∼πn\dfrac {(2n)!!}{(2n-1)!!}\sim \sqrt{\pi n}(2n−1)!!(2n)!!∼√πn Ans≈πn2n+1Ans\approx\dfrac {\sqrt{\pi n}}{2n+1}Ans≈2n+1√πn Code12345678910111213141516171819202122232425262728#include "lucida"const int N=1e7,MAXN=N+11;const double pi=acos(-1);double Ans[MAXN];void Prep() { Ans[0]=1; for(int i=1;i<=N;++i) { Ans[i]=Ans[i-1]/(2*i+1)*2*i; }}double Calc(int64 n) { if(n<=N) { return Ans[n]; } else { return sqrt(pi*n)/(2*n+1); }}int main() {// freopen("input","r",stdin); os.precision(20); Prep(); int T;is>>T; while(T--) { int64 n;is>>n; os<<Calc(n)<<'\n'; } return 0;}