csps模拟测试60
Posted starsing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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^nx_i^2y_j^2+x_j^2y_i^2-2x_iy_jx_jy_i$
最左侧是$\sum \limits_i=1^nx_i^2(\sum \limits_j=i+1^ny_j^2)$
最右侧是$\sum \limits_i=1^ny_i^2(\sum \limits_j=i+1^nx_j^2)$
如果吧左右都拆开再加在一起,
观察一下就会发现,如果按每一个xi乘的一陀y来看的话:
比xi大的yi在左侧有,比xi小的yi都在右侧,
因此左侧的就会变成$\sum \limits_i=1^nx_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^nx_i^2 \sum \limits_i=1^ny_i^2-\sum \limits_i=1^n\sum \limits_j=1^nx_i^2y_i^2$
中间仍然考虑可以考虑这么一件事,把$x_iy_i$看作一个$t_i$,把2倍拆开。
把一倍写成$\sum \limits_i=1^nx_iy_i(x_i+1y_i+1+\cdots+x_ny_n)$
另一倍写成$\sum \limits_i=1^nx_iy_i(x_1y_1+\cdots+x_i-1y_i-1)$
比$t_i$小的在左侧,比$t_i$大的在右侧,还是一样的加在一起
$\sum \limits_i=1^nx_iy_i(x_1y_1+\cdots+x_i-1y_i-1+x_i+1y_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^2\sum \limits_i=1^ny_i^2-(\sum \limits_i=1^nx_iy_i)^2$
然后就可以树状数组了。
T3:
LCIS直接DP即可。
注意定义可以修改然后直接用这个数组限制上升。
然后直接用非连续零散内存维护即可。
以上是关于csps模拟测试60的主要内容,如果未能解决你的问题,请参考以下文章