csps模拟测试60

  T1:

  加个剪枝。

  我忘了移项这件事。

  高考大坑。

  约瑟夫不多bb

  T2:

  高考化柿子大坑。

  其实我一直不太觉得两头的平方是一样的,我觉得只是他们的和很特殊。

  来刚。sx,sy,sxy均为平方或乘积的前缀和。

  $sum limits_{i=1}^{n}sum limits_{j=i+1}^{n}(x_iy_j-x_jy_i)^2$

  $sum limits_{i=1}^{n}sum limits_{j=i+1}^{n}x_i^2y_j^2+x_j^2y_i^2-2x_iy_jx_jy_i$

  最左侧是$sum limits_{i=1}^{n}x_i^2(sum limits_{j=i+1}^{n}y_j^2)$

  最右侧是$sum limits_{i=1}^{n}y_i^2(sum limits_{j=i+1}^{n}x_j^2)$

  如果吧左右都拆开再加在一起,

  观察一下就会发现,如果按每一个xi乘的一陀y来看的话:

  比xi大的yi在左侧有,比xi小的yi都在右侧,

  因此左侧的就会变成$sum limits_{i=1}^{n}x_i^2(y_1^2+cdots+y_{i-1}^2+y_{i+1}^2+cdots+y_{n}^2)$

  然后我可以发现我如果补上一个$x_i^2y_i^2$就圆满了。

  因此两端是$sum limits_{i=1}^{n}x_i^2 sum limits_{i=1}^ny_i^2-sum limits_{i=1}^nsum limits_{j=1}^nx_i^2y_i^2$

  中间仍然考虑可以考虑这么一件事,把$x_iy_i$看作一个$t_i$,把2倍拆开。

  把一倍写成$sum limits_{i=1}^nx_iy_i(x_{i+1}y_{i+1}+cdots+x_ny_n)$

  另一倍写成$sum limits_{i=1}^nx_iy_i(x_1y_1+cdots+x_{i-1}y_{i-1})$

  比$t_i$小的在左侧,比$t_i$大的在右侧,还是一样的加在一起

  $sum limits_{i=1}^nx_iy_i(x_1y_1+cdots+x_{i-1}y_{i-1}+x_{i+1}y_{i+1}+cdots+x_ny_n)$

  然后再补一个$x_i^2y_i^2$就行了。

  $(sum limits_{i=1}^nx_i^2)(sum limits_{i=1}^ny_i^2)-sum limits_{i=1}^nx_i^2y_i^2$

  然后在用两端的减去中间的值,直接消掉$sum limits_{i=1}^nx_i^2y_i^2$,得到可以维护的柿子。

  $sum limits_{i=1}^nx_i^2sum limits_{i=1}^ny_i^2-(sum limits_{i=1}^{n}x_iy_i)^2$

  然后就可以树状数组了。

  T3:

  LCIS直接DP即可。

  注意定义可以修改然后直接用这个数组限制上升。

  然后直接用非连续零散内存维护即可。