时间安排
8:30–8:50 读题,T1貌似最可做一些。
8:50–9:40 T1,有暴力的状压 dp 。考虑正解怎么做,一个暴力的想法是枚举最后一个区间是哪个,那么要计算两边都被覆盖的方案数,这个有个大致想想法。
9:40–10:00 T2, f 可以用线形基求,那么要求的就是线形基大小为某个 x 的数量之和,这个东西不知道怎么做。
10:00–11:00 T1,尝试着 dp ,写完发现答案不太对,发现假了。
11:00–12:40 T2有暴力的分数。T3有一定部分分,对于小数据可以用三分乱搞一下。
回顾反思
T1:
属于比较套路的 min-max 容斥题。
求解点集中所有点都被覆盖的时刻,即为所有点被覆盖时刻的最大值,容斥可变为点被覆盖最小值,记点集 S 被集合 f(S) 的区间覆盖,那么即为求集合中恰有一个被选的时刻。记一次选择选择到 f(S) 的概率为 p ,由于每一步代价为 1 单位时刻,故期望时刻为
1
p
\frac{1}{p}
p1 。
关键点一是 min-max 容斥,二是每一步代价为 1 时,期望=1/概率。
赛时写假的 dp 耽误了一部分时间,并且没有往 min-max 上想。写之前还是要确认正确性以及是否所有情况都考虑到了。min-max 可以再练练。
T2:
实际要求所有线形基大小为 x 的点集个数,注意到值域只有
2
7
2^7
27 级别,爆搜可能的线形基,注意是处理后的,发现状态数比较少,于是预处理出线形基状态之间的转移边,把线形基状态暴力加到 dp 状态里去就行了。
赛时想到的线形基,但是没有去搜索,没想到状态数会比较少。这种有一些特别的限制比如很小的值域等一定要注意,可能是对某种状态数量较少的提示。要动手去搜。
T3:
还不太懂。