2023.2.24 省选模拟赛总结

1.时间安排

7:30~9:30

T1:与2进制和划分集合相关的计数题

T2:数据范围非常小的图上最优化问题

T3:最大化半平面交

决策开题顺序:T1 30-50分性质+暴搜,T2 20分2进制枚举暴力,T3 30分 \(n^2logn\) 堆优化暴力,T1/T2的更多分。

手玩一些小数据发现从高位向低位贪心很对,写了一个从高位每次只能从低位往上拼的贪心,但是没对上样例,仔细想了一下每个位置只可能最多贡献一次,那么用一个mask来维护那些位置已经用过就可以至少保证不会重复加入相同元素,但是写完仍然对不上样例。

又继续分析性质,发现如果高位 \(t\) 需要被拼出来一定低位能直接拼出来 \(t\) 或是拼出来 \(t-1\) 再新增一个 \(t-1\) ,容易发现没有其他情况,且一定是优先在低位内用其中的高位拼,写完这样的策略过了大样例,跑的有点慢就加入了若干可行性剪枝,最后稳定在 0.5s 左右,极限数据 0.9s,寄希望于 OJ 不卡常。

然后猜了一下是不是能进位,因为有可能要在当前位就平分所以当前为需要保留的情况有 0,1,2 三种,那么发现极长的非 0 段内 2 前面的可以自行进位解决,否则剩下开头的一段1,那么就只能新增一个元素来平分。

写完后没有对上样例,以为结论假了,就没管。

9:30~10:00

写完 T2 的二进制枚举+BFS暴力,能过大样例,也不好造数据对拍,就没管。

(其实看错题了,以为冰山融化后是海洋,没看见是变成浮冰,但是大样例太水了。)

10:00~11:00

写T3的 \(n^2logn\),很套路,枚举左端点,递增右端点,用set维护当前的区间,用可删堆维护最长的区间长度,很快就写完调完,但是常数大的飞起,本地样例要跑12s(难绷)。

经过大幅卡常最终把大样例卡进6s,打表样例本质不同的点数量还是不少的,认为挺强,就没有管了。

11:00~12:00

给T1和T3再进行了一些小卡常,然后想T2 \(n<=3\) 的做法,也没想到什么可行的DP(因为看错题了)。

然后发发呆,比赛就结束了。

result:

T1:50 T2:0(20) T3:30

2.总结

T1:

没想到场上的结论是对的,但是因为自己细节写挂没拍上大样例,不过场上那段代码已经删了也不知道是哪里细节写挂了。

有了这个结论可以设计 DP 状态为 \(f_{i,j,k}\) 表示前 \(i\) 位接下来要往 \(i+1\) 位进 \(j\) 次位,第 \(i\) 位进位后是 \(k\) 的方案数,\(g_{i,j,k}\) 为答案,根据上面的结论 \(k\) 的取值只有 \(0,1,2\),当且仅当 \(i\) 位是 0 且 \(i+1\) 位是 \(1\) 的时候对 \(g\) 要多贡献 \(1*f\)

直接 \(DP\)\(O(n^3*\Delta)\)\(\Delta\) 表示常数。

发现可以按奇偶性讨论,于是可以用前缀和优化,时间复杂度 \(O(n^2\Delta)\),空间复杂度可以滚动优化。

为什么要强调 \(\Delta\) 呢?

我不好说。

T2:

(卧槽,冰!就那种,全都是冰的冰块,我人都要飞起来了!)

手玩一下发现浮冰是从四个角向内融化的,想到一个贪心就是把四个角延伸出的极大不含冰山矩形都删去,但是容易发现剩下的冰仍然存在可以删去的,如图

(4,2) 也可以删去,继续研究发现一定是分割出的四个矩形对角线被删去,递归另一条对角线。

即便如此,我们不难发现DP值的上界是目标点四个方向的冰山个数和取min,这个可以作为DP初值。

那么就大力分割矩形,枚举矩形分成了哪四部分,再枚举那条对角线被删去,可以做到 \(O(n^6)\)

T3:

非常离谱的 3log 分治+决策单调性,暂时放弃。

posted @ 2023-02-24 19:17  Displace  阅读(21)  评论(0)    收藏  举报