省选测试13

A. 同桌的你

没改完,暂咕。

B. 大水题

题意:X非负半轴,给出N个不重点的坐标(x_i)种类(b_i),求最长区间满足[L,R]中每种点的数量相同或为0,且种数至少为K。N<=1e5,K<=8
首先观察到K很小。
如果不考虑K的限制,那么一段区间合法等价于每种的前缀和的差相等,也就是说可以用相对大小表示。差分后对右端点可以用hash快速查左端点。
由于需要差分,同时加上差分序列长度也无法压缩完整信息,所以在外层(2^8)枚举出现的品种集合。
正解复杂度是(O(8n)),然而以上如果理想化hash表的复杂度也可过。
PS:考试时差分写挂了,数据太弱拍不出来。

C. 佛罗里达

题意:把n个人分成两队,给出每两个人被分到同一队时的不安值(T_{i,j}),定义队A的不安值D(A)为(maxlimits_{uin A,vin A}T_{u,v}),最小化两队不安值之和。n<=250
看上去有点像《关押罪犯》,n^2枚举A队的不安值,把<=D(A)的全部加到A中,然后从大到小sort加点判断是否为二分图(有初始,并查集不会做),其实到这步思路就很模糊,感觉第一个结论就是错的。。。于是弃了
正解是2-sat
40pts:钦定D(A)<=D(B),枚举D(B),这时D(A)可以二分。
对于点对分类讨论:
1.T<=D(A),无限制
2.D(A)<T<=D(B),至少一个在B中
3.D(B)<T,分开
这样2-SAT求解,复杂度(n^4logn)
100pts:优化枚举D(B)
实际上D(B)的取值是(O(n))级别的。
不过想了很久也没能看懂题解,最后只能看着代码yy(哪位打了正解的大神能给我讲下啊kuku)

原文地址:https://www.cnblogs.com/hzoi-yzh/p/12244055.html