T1:
考虑每条边的贡献就完了
写的垃圾神他妈T了
T2:
我都知道对于本身是否好坏是要分开讨论
如果本身是好的要特殊处理
对于一段合法的
如果
n
−
k
n-k
n−k不可以
那么就是
a
[
1...
k
]
,
a
[
n
−
k
+
1
,
n
]
a[1...k],a[n-k+1,n]
a[1...k],a[n−k+1,n]一定匹配
明明可以
K
M
P
KMP
KMP或哈希搞的匹配
我非对每种字符用
f
f
t
fft
fft搞了一个匹配
这就是脑残吧
好的串在
k
m
p
kmp
kmp时倍长一下
code
T3:
突然发现自己看成面积了??
真该退役了。。。。
考虑答案起码为
m
a
x
(
n
,
m
)
∗
2
+
2
max(n,m)*2+2
max(n,m)∗2+2
所以矩形一定过
x
=
n
/
2
x=n/2
x=n/2或
y
=
m
/
2
y=m/2
y=m/2
于是把所有树按照
y
y
y排序
以及看作在顶边上时的答案
对于
n
/
2
n/2
n/2分开
左右分别维护一个向外的单调栈
又
答案可以表示为
(
x
2
−
x
1
+
y
2
−
y
1
)
∗
2
(x2-x1+y2-y1)*2
(x2−x1+y2−y1)∗2这样
于是线段树维护
x
2
−
x
1
−
y
1
x2-x1-y1
x2−x1−y1这样的
m
a
x
max
max即可
单调栈的时候区间修改即可