给定n个实数 q i q_{i} qi,给出 F j F_{j} Fj的定义如下: F j = ∑ i < j q i q j ( i − j ) 2 − ∑ i > j q i q j ( i − j ) 2 F_{j}=\sum_{i<j}\frac {q_{i}q_{j}}{(i-j)^2}-\sum_{i>j}\frac {q_{i}q_{j}}{(i-j)^2} Fj=∑i<j(i−j)2qiqj−∑i>j(i−j)2qiqj 令 E j = F j q j E_{j}=\frac {F_{j}}{q_{j}} Ej=qjFj,求所有 E j E_{j} Ej
要求答案误差不超过10-2
数据范围:n<=1e5,0<=q(i)<=1e9
F j = ∑ i < j q i q j ( i − j ) 2 − ∑ i > j q i q j ( i − j ) 2 F_{j}=\sum_{i<j}\frac {q_{i}q_{j}}{(i-j)^2}-\sum_{i>j}\frac {q_{i}q_{j}}{(i-j)^2} Fj=∑i<j(i−j)2qiqj−∑i>j(i−j)2qiqj
E j = F j q j E_{j}=\frac {F_{j}}{q_{j}} Ej=qjFj
消 掉 q j 得 : 消掉q_{j}得: 消掉qj得:
E j = ∑ i < j q i ( i − j ) 2 − ∑ i > j q i ( i − j ) 2 E_{j}=\sum_{i<j}\frac {q_{i}}{(i-j)^2}-\sum_{i>j}\frac {q_{i}}{(i-j)^2} Ej=∑i<j(i−j)2qi−∑i>j(i−j)2qi
–
令 f ( i ) = q i , g ( i ) = 1 i 2 , 那 么 式 子 变 为 : 令f(i)=q_{i},g(i)=\frac {1}{i^2},那么式子变为: 令f(i)=qi,g(i)=i21,那么式子变为:
E j = ∑ i = 1 j − 1 f ( i ) ∗ g ( i − j ) − ∑ i = j + 1 n f ( i ) ∗ g ( i − j ) E_{j}=\sum_{i=1}^{j-1} f(i)*g(i-j)-\sum_{i=j+1}^{n}f(i)*g(i-j) Ej=∑i=1j−1f(i)∗g(i−j)−∑i=j+1nf(i)∗g(i−j)
–
因 为 当 i 在 [ 1 , j − 1 ] 范 围 内 时 , i − j < 0 , 此 时 g ( i − j ) = g ( j − i ) , 那 么 式 子 变 为 : 因为当i在[1,j-1]范围内时,i-j<0,此时g(i-j)=g(j-i),那么式子变为: 因为当i在[1,j−1]范围内时,i−j<0,此时g(i−j)=g(j−i),那么式子变为:
E j = ∑ i = 1 j − 1 f ( i ) ∗ g ( j − i ) − ∑ i = j + 1 n f ( i ) ∗ g ( i − j ) E_{j}=\sum_{i=1}^{j-1} f(i)*g(j-i)-\sum_{i=j+1}^{n}f(i)*g(i-j) Ej=∑i=1j−1f(i)∗g(j−i)−∑i=j+1nf(i)∗g(i−j)
–
左 边 ∑ i = 1 j − 1 f ( i ) ∗ g ( j − i ) 部 分 是 卷 积 形 式 , 用 F F T 计 算 左边\sum_{i=1}^{j-1} f(i)*g(j-i)部分是卷积形式,用FFT计算 左边∑i=1j−1f(i)∗g(j−i)部分是卷积形式,用FFT计算
右 边 ∑ i = j + 1 n f ( i ) ∗ g ( i − j ) 可 以 通 过 翻 转 q [ ] 数 组 变 为 : ∑ i = 1 j − 1 f ′ ( i ) ∗ g ( j − i ) , 就 变 成 卷 积 了 右边\sum_{i=j+1}^{n}f(i)*g(i-j)可以通过翻转q[]数组变为:\sum_{i=1}^{j-1}f'(i)*g(j-i),就变成卷积了 右边∑i=j+1nf(i)∗g(i−j)可以通过翻转q[]数组变为:∑i=1j−1f′(i)∗g(j−i),就变成卷积了 计 算 答 案 的 时 候 别 忘 了 再 翻 转 一 次 翻 回 来 计算答案的时候别忘了再翻转一次翻回来 计算答案的时候别忘了再翻转一次翻回来