首页 > 其他分享 >CF713D 题解

CF713D 题解

时间:2024-01-13 16:48:44浏览次数:31  
标签:二分 log CF713D 题解 复杂度 mid 边长 mx

题意

给一个 \(01\) 矩阵,多次求在给定区间内最大的全 \(1\) 正方形边长。

思路

容易想到二分:

先预处理出以每个位置为右下角的最大合法正方形的边长 \(mx_{i,j}\),然后对于每个询问,我们二分边长 \(mid\),设当前询问的区间左上角为 \((x_1,y_1)\),右下角为 \((x_2,y_2)\),则能取到 \(mid\) 当且仅当 在以 \((x_1+mid-1,y_1+mid-1)\) 为 \((x_2,y_2)\) 对角的矩形中有 \(mx_{i,j}\) 不小于 \(mid\) 的位置。

于是就可以用二维 ST 表。时间复杂度 \(O(n^2\log^2n+t\log n)\)(假设 \(n\) 与 \(m\) 同级)空间复杂度 \(O(n^2\log^2n+t)\)。

还有另一种思路:整体二分。

我们将所有询问一起处理,对于当前的 \(mid\),把 \(mx \ge mid\) 的位置看成 \(1\),否则为 \(0\),一个询问能取到 \(mid\) 当且仅当 在以 \((x_1+mid-1,y_1+mid-1)\) 为 \((x_2,y_2)\) 对角的矩形中有 \(1\),可以使用前缀和优化,时间复杂度 \(O(n^3 + t\log n)\)(假设 \(n\) 与 \(m\) 同级),但是每次我们需要处理新值的区间只有 \((mid,mid)\) 至 \((n,m)\),所以常数比较小,也可以过。空间复杂度 \(O(n^2+t)\)。

标签:二分,log,CF713D,题解,复杂度,mid,边长,mx
From: https://www.cnblogs.com/BINYU/p/17962530

相关文章

  • AT_arc167_e 题解
    题意给定\(k\)和一个排列\(P'\),问有多少个排列\(P\)以最少步数交换相邻两个元素来进行收敛,最终的排列可能是\(P'\),一个排列是收敛的当且仅当对于每一个数,在该数前且比这个数大的数的个数不超过\(k\)个。思路考虑正向的让一个排列收敛,我们设在第\(i\)个位置前且比\(P......
  • AT_agc054_c 题解
    题意给定\(k\)和一个排列\(P'\),问有多少个排列\(P\)以最少步数交换相邻两个元素来进行收敛,最终的排列可能是\(P'\),一个排列是收敛的当且仅当对于每一个数,在该数前且比这个数大的数的个数不超过\(k\)个。思路考虑正向的让一个排列收敛,我们设在第\(i\)个位置前且比\(P......
  • P9754 题解
    题意不难理解,不多赘述。思路首先考虑对于性质A的情况,我们可以这样做:定义一个代表变量的结构体,里面存几个参数:首先肯定要存种类(\(type\))和名称(\(name\)),其次为了方便,我们把该变量的大小(\(siz\)),起始位置(\(fir\))和对齐要求(\(mx\))也存了。操作二\(type\),\(name\),\(siz\)和\(m......
  • AT_cf17_final_j 题解
    题意给定一棵既有点权也有边权的树,构造一个完全图,图中两点间边的边权为树中两点点权之和加上两点间的距离,求该图的最小生成树。思路发现完全图总边数太大,考虑减少边数。这里有一个性质:如果在一个图中选取任意个联通的边集,使得它们的并为全集,则整个图的最小生成树中的边一定在......
  • [AGC022F] Checkers 题解
    题目链接点击打开链接题目解法很妙的题!!!考虑\(x\)是无穷大的数,所以可以认为\(x^i\)的系数是单独的一项,不会和\(x^j(j\neqi)\)合并所以问题转化成了:每个数初始是\(x^i\)(\(x\)可以理解是元),进行题目中的操作,问最后形成的\(n\)次多项式的个数由\(B\)向\(A\)连边,这......
  • CF1006E Military Problem 题解
    CF1006EMilitaryProblem题解题意给定一颗有\(n\thinspace(2\leqn\leq2\times10^5)\)个节点的树,树根为\(1\)。对于每个节点\(i\thinspace(2\leqi\leqn)\)都有它的父节点\(p_i\),并且每个节点的子节点都是按从小到大的顺序排列的的。有\(q\thinspace(1......
  • 【题解】CatOJ C0458C 滑动窗口定期重构
    标题trick的名字我也不知道是什么,就这样吧。link。首先有显然的dp式子:\(f(i)=\min\{f(j)\times\max\{a_{j+1},\dots,a_i\}\}\)。考虑怎么去优化它。有显然的\(\mathcalO(n\logn)\):考虑线段树优化dp。用增的单调栈维护\(a\),若每次弹出顶部一个下标\(p\),则\([p+1,i......
  • 1.11模拟赛 T1题解
    简要题意\(n\le10^3,\sumK_i\le3\times10^5\)思路首先容易想到一个暴力DP,\(f_{l,r,x}\)表示区间中最大值为\(x\)的最大值稍微想亿下可以发现如果这个位置选的不是区间最大值的话,答案一定不优所以我们可以直接\(f_{l,r}\)DP转移,但复杂度还是没变,我们把柿子列出来\(......
  • AT_joisc2018_b 题解
    AT_joisc2018_b题解传送门题意有一个以原点为中心的正方形,有\(n(n\le100)\)条不在正方形内部的线段,你需要画一些不在正方形内部的线段,使得这些线段可以把正方形围起来,要求最小化你画的线段的长度和。思路我们需要画出一条闭合折线,并且能够把正方形包围。考虑我们一定是......
  • 1.11模拟赛 T2题解
    简要题意每个点有一定概率向前面的点连边,求两点之间距离的期望思路推柿子code#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#defineN1000005intn,m,u,v;constintmod=1e9+7;inta[N],sum[N],c[N],dep[N],s[N],f[N],g[N],h[N];intksm(intx......