正睿19暑期B班DAY8 测试DAY1

终于上场均了qvq

风评被害身败名裂.PNG

T1

link

30opts

按照剧本是个状压dp

100opts

把这个问题看作和一个人博弈

这个人非常阴险 总给你最坏情况

考虑如果有k个1 把她们分到k个集合里就好了

少一个1可以用k个2来补

少一个2可以用k个3来补

以此类推

也长成这样\(\sum k^{-a_i} \geq 1\)

“这道题是可以出到5e6的 但是spj有一个loj”

AC代码


T2

link

7opts

对我正解写挂了

22opts

大力搜

42opts

暴力并查集合并

100opts

由于右区间不相交

我们可以把它看作一个横过来的树(根在左边)

abcabcab

​ abcabcab

这种情况要特判一下\(l2 - l1 < pos - l2\)

直接跳到最前面 免得反复横跳

所以。。我们把并查集改成暴力,复杂度就真的对了。。

AC代码

p.s.if(p && edge[p].l2 <= x && x <= edge[p].r2)这里要再判一次范围


T3

link

没有看到所有边都要被用到。。惨惨了

10opts

反复横跳消掉所有边 拆成4点样例处理

40opts

直接搜

65opts

1.剪枝 找度数最小的点

2.欧拉回路加高消??Orz

把每条边定向 变成异或方程组 做成一个O(m^3)

(看起来大家已经完全搞懂了)

100opts

对于传统问题(即没有偶数长度要求的链覆盖)

可以把所有奇数度数点两两相连(虚边)

因为奇数度数点的个数为偶数

所以连完之后的图所有点度数都是偶数

在这张图上求一个欧拉回路 再删掉所有虚边

得到的就是链覆盖

现在考虑加入偶数长度限制

原图必然能被若干个长度为2的链覆盖 否则无解

在做一个任意长度为2的链覆盖后

把所有的链 即形如(u, p, v)(因为长度为2嘛)

缩成(u, v)

因为这样缩会中间点(即p)度数减2 其余点度数不影响

所以仍然可以用原来的方法做链覆盖

这时得到的所有的链显然在原图中长度为偶数

对于这道题无解的判断

首先,每个点的点度是奇数

其次,总边数一定是偶数

问题有解当且仅当同时满足这两个条件

AC代码

好评如潮.PNG

PrayForKyoani

posted @ 2019-08-04 18:11  hjmmm  阅读(228)  评论(0编辑  收藏  举报