7.24 后记
T1
惨案一:80pt代码忘交了
正解:
开个桶
cnt[0]++;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= tot; j++) {
ans += cnt[a[i] ^ v[j]];
cnt[a[i]]++;
}
}
vis[] 存因数
T2
考试时暴力挂了
正解:
选出的区间长度一定 \(\le 3\)
线段树维护长度为 \(2\) 和长度为 \(3\) 的最大子段
T3
考试时暴力拿了20分
正解:

维护黑色圈这两个东西

\(a\):前面 \(1\) 的贡献
\(b\):前面 \(1\) 的个数

然后分块
怎么合并呢
维护块内 \(1\) 对块左、右端点间的贡献

要特判区间连接处,不一样时加上左边区间 \(1\) 个数 \(\times\) 右边区间 \(1\) 个数

T4
惨案二:
正解:

环上点和树上点分开维护
树刨
又不用了。。。

对重链开桶,但开不下,用map
CF383C


浙公网安备 33010602011771号