zoukankan      html  css  js  c++  java
  • BZOJ3527:[ZJOI]力

    无题面神题

    原题意:

    求所有的Ei=Fi/qi。

    题解:

    qi被除掉了,则原式中的qj可以忽略。

    用a[i]表示q[i],用b[j-i]来表示±1/((j-i)^2)(j>i时为正,j<i时为负)

    则求E[j]就是多项式乘法了。

    因为是FFT,所以b的下标要增加到0及以上

    这题时限有30s,比某题友好多了。

    代码:

     1 type
     2   xs=record
     3     x,y:double;
     4   end;
     5   arr=array[0..1000000]of xs;
     6 var
     7   e,t:arr;
     8   a:array[1..5]of arr;
     9   n,m,i:longint;
    10 function jian(a,b:xs):xs;
    11 begin
    12   jian.x:=a.x-b.x;
    13   jian.y:=a.y-b.y;
    14 end;
    15 function jia(a,b:xs):xs;
    16 begin
    17   jia.x:=a.x+b.x;
    18   jia.y:=a.y+b.y;
    19 end;
    20 function cheng(a,b:xs):xs;
    21 begin
    22   cheng.x:=a.x*b.x-a.y*b.y;
    23   cheng.y:=a.x*b.y+a.y*b.x;
    24 end;
    25 procedure fft(xx,s,nn,mm:longint);
    26 var
    27   i,j:longint;
    28   w:xs;
    29 begin
    30   if nn=1 then
    31   begin a[xx+2,s]:=a[xx,s]; exit; end;
    32   for i:=0 to nn div 2-1 do
    33   begin t[i]:=a[xx,i*2+s]; t[i+nn div 2]:=a[xx,i*2+1+s]; end;
    34   for i:=0 to nn-1 do a[xx,s+i]:=t[i];
    35   fft(xx,s,nn div 2,mm*2); fft(xx,s+nn div 2,nn div 2,mm*2);
    36   for i:=0 to nn div 2-1 do
    37   begin
    38     j:=s+i;
    39     w:=cheng(e[i*mm],a[xx+2,j+nn div 2]);
    40     t[j]:=jia(a[xx+2,j],w);
    41     t[j+nn div 2]:=jian(a[xx+2,j],w);
    42   end;
    43   for i:=s to s+nn-1 do a[xx+2,i]:=t[i];
    44 end;
    45 begin
    46   read(m);
    47   for i:=0 to m-1 do read(a[1,i].x);
    48   for i:=1 to m-1 do a[2,i].x:=-1/(m-i)/(m-i);
    49   for i:=m+1 to m*2-1 do a[2,i].x:=1/(i-m)/(i-m);
    50   n:=1;
    51   while n<m*2 do n:=n*2;
    52   for i:=0 to n-1 do e[i].x:=cos(pi*2*i/n);
    53   for i:=0 to n-1 do e[i].y:=sin(pi*2*i/n);
    54   fft(1,0,n,1); fft(2,0,n,1);
    55   for i:=0 to n-1 do a[3,i]:=cheng(a[3,i],a[4,i]);
    56   for i:=0 to n-1 do e[i].y:=-e[i].y;
    57   fft(3,0,n,1);
    58   for i:=m to m*2-1 do writeln((a[5,i].x/n):0:3);
    59 end.
    View Code
  • 相关阅读:
    MySQL分区性能初探
    FastDFS开源的轻量级分布式文件系统
    MySQL数据类型之数值类型,对理解类型定义中的“位”有莫大的帮助
    空密码引发共享打印机拒绝访问
    利用Myxls导出并下载Excel
    StyleCop SA0102
    Spring AOP介绍
    大学英语一下重修听力考试范围.doc 听力原文 及MP3
    Eclipse中文版
    飞鱼秀下载
  • 原文地址:https://www.cnblogs.com/GhostReach/p/6257602.html
Copyright © 2011-2022 走看看