Solution Set - 杭电多校 2022 Day1 一句话题解

1001:建出失配树,失配树性质有 \(i\) 的 Border 为 \(fail_i,fail_{fail_i},\ldots\),DFS 一遍失配树,同时用桶记录一下结果就行了,注意到需要满足上界,只需要利用单调性就可以了。

不过栈空间会爆,HDU 实在没有马。

1002:\(2^K\) 枚举删掉哪些墙即可,判断连通爆搜即可。

1003:\(f_{i,v}\) 表示容量为 \(i\) 异或和为 \(v\) 是否可行,交换两维后 bitset 即可。

1004:按距离从小到大枚举每一个点对的距离,钦定其为中位数,只需要数出剩下一个点的选择方案就行了,使用 bitset 优化就行了

为什么没做出来:赛时胡的是二维数点,感觉复杂度更优一些,没想到 bitset 啊。

1005:按照每一个符号建出边来,注意这里要建一个正图一个反图,在反图上拓扑排序找环的同时求出不带环符号的长度,最后再正图上跑每一组询问,使用前缀和加二分优化就行了。

为什么没做出来:这寄吧题谁写啊。

1006:任意简单环边权和不为偶数 \(\to\) 这是一个仙人掌,理由是若两个环 \(L_1,L_2\) 有交,则 \(\sum L_1+\sum L_2-2*w_i\) 也为奇数,这不可能。

\(\gcd\) 为一个定值,是套路莫比乌斯反演,具体的,枚举 \(\gcd\),建出边权为 \(\gcd\) 倍数的边,这是一个仙人掌,跑仙人掌上路径计数然后莫反就行了。

为什么没做出来:首先题没有读,其次读了会仙人掌的人不知道跑哪里去了。

1007:建出 Kruskal 重构树,因为每一个颜色只有 \(10\) 个,所以说单点加的时候最多加十条链,用树链剖分维护一下就行了。

为什么没做出来:哈哈,题读错了,日。

1008:根据上一条边是否经过特殊边建出分层图就行了。

1009:枚举一个点与其所在的直线,再扫一遍其他的点将对应的 \(k\) 丢到桶里就行了。

1010:不会。

1011:答案是 \(\frac{n-m}{2}\)

1012:计算最后会不会有 \(0\) 就行了。

posted @ 2022-07-27 21:03  时一月  阅读(69)  评论(0)    收藏  举报