省选模拟59
A. 杨柳
发现每个位置同一时刻只有一个棋子是废限制,所以这题就没了。
所以可以考虑二分图带权匹配,然而会tle,所以直接在原图上跑费用流就行了。
B. 景中人
考虑dp,令$dp[i][j][k]$表示$[i,j]$这一段区间所有纵坐标大于等于k的点全部被覆盖的最小花费。
转移的话可以考虑,所有的矩形的横坐标只有相离或者包含两种关系,所以一种方案是加入一个横坐标包含整个区间的矩形,另一种是考虑将整个区间分成两半转移。
所以单次转移$O(n)$,总复杂度$O(n^4)$。
C. 钦点
考场上打了一个$O(Tnlog^4)$的暴力,然而跑不满常数极小,所以开了O2之后卡了卡常就过了。实际上就是搞了一个线段树分治,每次加入就行了。
然后正解的思路类似,建出若干虚点,然后暴力建出整张图即可,之后找到最大的连通块,枚举删掉这个连通块之内的某个点,之后剩余最大连通块的最小值就是答案。
然后还有几个优化,就是可以存最小质因子来预处理出每个数的质因数分解,然后可以快速得到约数。可以发现只处理仅包含两个质因子的数就可以考虑到所有情况,所以复杂度$O(nlog^2a)$