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分

正解:

维护黑色圈这两个东西

img

\(a\):前面 \(1\) 的贡献

\(b\):前面 \(1\) 的个数

img

然后分块

怎么合并呢

维护块内 \(1\) 对块左、右端点间的贡献

img

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

img

T4

惨案二:

正解:

img

环上点和树上点分开维护

树刨

又不用了。。。

img

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

CF383C

img

posted @ 2023-07-24 18:33  Badnuker  阅读(14)  评论(0)    收藏  举报