合集 斜率优化

昨天晚上肝了几道斜率优化的题,这里一起把题解写了吧。

模板 exCRT

传送门
Orz 小昊


题目大意

求同余方程组的最小非负整数解。
$$x\equiv a_i(mod\ b_i)$$

BZOJ 4503 [两个串]

传送门
这真的是个黑科技了。
以后忘了怎么写KMP就写FFT了。


题目大意

给出两个长度不超过$10^5$的由小写英文字符构成的字符串$S,T$,询问$T$在$S$中出现了多少次及每次出现的位置(下标从$0$开始)。
$T$中可能存在?通配符,可以匹配任何英文字符。

BZOJ 3527 [ZJOI2014 力]

传送门
简直就是万有引力吧。


题目大意

给出$n$个数$q_i$,定义:

$F_i={j<i}\frac{q_iq_j}{(i-j)^2}-{j>i}\frac{q_iq_j}{(i-j)^2}$

$$E_i=\frac{F_i}{q_i}​$$
求$E_i​$

BZOJ 4827 [HNOI2017 礼物]

传送门
我一定是脑子烧坏了,FFT都写不对。


题目大意

给你两个长度为$n$的序列$a,b$,满足$a_i,b_i\in [1,m]$,$a,b$中的数组可以循环(即可以把开头放到结尾,结尾放到开头)。

定义$a,b$之间的差异值为$$\sum_{i\in[1,n]} (a_i-b_i)^2$$。你可以选择一个常数$c$,使得$a$或$b$中的每个数加上$c$。

求最小差异值。$n\le 50000,m\le 100$

Luogu 3157 [CQOI2011 动态逆序对]

传送门
垃圾BZOJ,硬是过不了我的大常数。


题目大意

给出一个$1$到$n$的排列$P$,依次删除$m$个数,问每次删除前整个序列的逆序对数。

BZOJ 1901(动态区间第K小)

传送门
树套树什么的真的头晕死了。


题目大意

给你一个序列$a_{i\in [1,n]}$,要求单点修改,区间询问第$k$小值。

模板 静态区间第K小(主席树)

传送门
啊,推了一晚上,大概搞定了吧。


题目大意

给定一个序列$a_{k\in [1,n]}$,$q$次询问,每次询问$[l,r]$中第$K$小的数。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×