12 2017 档案
摘要:A. Assignment Algorithm 按题意模拟即可。 B. Buffalo Barricades 首先通过扫描线求出最终的图中每个点属于哪个区域,以及包含每个区域的最小区域。 然后倒着处理每个询问,依次删掉每个栅栏,也就是将区域的点数合并,并查集维护。 时间复杂度$O((n+m)\log
阅读全文
摘要:A. Add and Reverse 要么全部都选择$+1$,要么加出高$16$位后翻转位序然后再补充低$16$位。 B. Analyze This bitset加速暴力。 C. Bipartite Graph 每个点向附近$3$个点连边即可。 D. Bridge Building 二分答案,那么对
阅读全文
摘要:枚举每个$S$作为原点,将所有$D$和$T$极角排序。 枚举每个$T$,那么另一个$T$需要和当前的$T$夹角不超过$180$度,贡献为内部$D$的个数。 双指针后用前缀和查询区间的贡献即可。 时间复杂度$O(n^2\log n)$。
阅读全文
摘要:A. Area of Effect 首先最优解中必有一个点在圆的边界上。 若半径就是$R$,则枚举一个点,然后把剩下的事件极角扫描即可,时间复杂度$O(m(n+m)\log(n+m))$。 否则圆必然撞到了两个圆,枚举一个点以及两个圆,二分出最大的半径,然后统计内部点数即可,时间复杂度$O(n^2m
阅读全文
摘要:A. Cakey McCakeFace 按题意模拟即可。 B. Table 枚举下底边,求出每个位置向上延伸的最大长度,枚举每个位置作为右下角,那么单调栈中每一个子矩形都可以对长宽都不超过它的询问产生贡献,通过差分二维前缀和,那么$O(1)$单点修改即可。 为了避免枚举单调栈中每一项,可以在每一项退
阅读全文
摘要:A. Archery Tournament 用线段树套set维护横坐标区间内的所有圆,查询时在$O(\log n)$个set中二分查找即可。 时间复杂度$O(n\log^2n)$。 B. Box 分类讨论。 C. Connections 考虑强连通分量的Kosaraju算法,会发现只有$2(n-1)
阅读全文
摘要:从上到下枚举上下底边,那么涉及两行的添加和删除。 首先预处理出对于每一列,每个位置添加和删除时,是否会对往下$k$个里出现这个颜色造成影响。 然后对于每种颜色维护一个长度为$m$的bitset,表示哪些列出现过该颜色。 那么每次修改时,找到前驱和后继,对这一行答案的影响是一段区间加,差分前缀和即可。
阅读全文
摘要:求出Kruskal重构树,那么重构树上每个点的取值范围是定的。 考虑树形DP,则对于一个点,要么所有点水位相同,要么还未发生合并。 故$dp[x]=up[x]-down[x]+1+dp[l[x]]\times dp[r[x]]$。 时间复杂度$O(nm\log(nm))$。
阅读全文
摘要:若$1$到$n$之间没有其它点,则$1$到$n$的距离为任意一点到它们距离的差值,按照距离关系判断每个点是挂在$1$上还是挂在$n$上即可。 否则$1$到$n$的距离只可能为任意一点到它们距离和的最小值,抽出$1$到$n$路径上所有点后,对于剩下的每个点判断它应该挂在那个点下面即可。 时间复杂度$O
阅读全文
摘要:A. Ascending Photo 贪心增广。 B. Boss Battle 当$n\leq 3$时显然$1$步就可以炸死。否则每次可以缩小一格,故答案为$n-2$。 C. Connect the Dots 留坑。 D. Dunglish 按题意模拟即可。 E. English Restauran
阅读全文

浙公网安备 33010602011771号