【解题思路】
这题解法很多,我也不知道标算是什么。。这简直就是大放水啊。。
网上流传的乱搞法,对于小范围内(假设为[1,l]∩N)暴力,大范围内估算。
我写这题时还是写P的?!。。但是我看不懂我当时写了什么,也忘了当时看的哪篇博客。。
贴个代码跑。。理论复杂度O(nl+n2a(1-a)),然后A了?!
不知bzoj数据有没有加强。。
【参考代码】
1 const 2 ladder=100; 3 var 4 n,i,j,k:longint; 5 limit:extended; 6 m,g:array [1..100000] of longint; 7 f:array [1..100000] of extended; 8 begin 9 read(n,limit); 10 for i:=1 to n do 11 begin 12 read(m[i]); 13 g[i]:=trunc(i*limit); 14 end; 15 fillchar(f,sizeof(f),0); 16 for i:=1 to n do 17 if g[i]>0 then 18 if i<=ladder then 19 begin 20 for j:=1 to g[i] do f[i]:=f[i]+m[j]/(i-j); 21 f[i]:=f[i]*m[i]; 22 end 23 else 24 begin 25 k:=i-ladder; 26 f[i]:=f[k]/m[k]*(k-g[k]/2)/(i-g[k]/2); 27 for j:=g[k]+1 to g[i] do f[i]:=f[i]+m[j]/(i-j); 28 f[i]:=f[i]*m[i]; 29 end; 30 for i:=1 to n do writeln(f[i]:0:6); 31 end.
We Secure, We Contain, We Protect.