当前位置: 代码迷 >> 综合 >> 『枚举优化·悬线法』largest submatrix
  详细解决方案

『枚举优化·悬线法』largest submatrix

热度:53   发布时间:2023-12-17 11:03:00.0

P r o b l e m \mathrm{Problem} Problem

在这里插入图片描述

题解

我们发现发现a,b和c是独立的。

因此我们单独考虑某一个字母,把能变成这个字母的数字都赋值为1即可。

现在问题转化成了求解最大全1矩阵。

对于每一个点求解能往左的/往右的,全部为1的最边上的距离。

For(i,1,n) {
    For(j,1,m) if (b[i][j] and b[i][j-1]) l[i][j] = l[i][j-1];Forr(j,1,m) if (b[i][j] and b[i][j+1]) r[i][j] = r[i][j+1];}

然后我们枚举每一个点,得到能够向上的最大距离。用up[i][j]表示。

即,当 b [ i ] [ j ] = b [ i ] [ j ? 1 ] b[i][j]=b[i][j-1] b[i][j]=b[i][j?1]时同时转移: l [ i ] [ j ] = max ? ( l [ i ] [ j ] , l [ i ? 1 ] [ j ] ) r [ i ] [ j ] = max ? ( r [ i ] [ j

  相关解决方案