Second Large Rectangle(2019牛客暑期多校训练营(第二场)H,全 1 次大子矩阵)

超分算法 SwinIR: Image Restoration Using Swin Transformer 这篇文章结构比较简单,如果看过Swin-Transformer的话就没什么难点了。作者引入Swin-T结构应用于低级视觉任务,包括图像超分辨率重建、图像去噪、图像压缩伪影去除。网络由一个浅层特征提取模块、深层特征提取模块、重建模块构成。重建模块对不同的任务使用不同的结构。浅层特征提取就是一个3×3的卷积层。深层特征提取是k个RSTB块和一个卷积层构成。RSTB(Res- SwinIR: Image Restoration Using Swin Transformer[ICCV 2021]Abstract1. 阅读详情

一.题目链接:

Second Large Rectangle

二.题目大意:

给你一个 n × m 大小的由{0,1} 组成的矩阵.

求全由 1 构成的子矩阵中面积的次大值,不存在则输出 0.

三.分析:

求存在障碍点的最大子矩阵,可以用悬线法或单调栈.

不过这里让求次大子矩阵(悬线法求的时候有重复,这个菜鸡不会,有大佬请留言)

所以这里只写了单调栈的解法.

思想就是,求出 h[i][j],h[i][j]的定义:点(i,j)能够向上拓展的长度.

例如矩阵 A:

\begin{matrix} 1 &1 &1 &1 \\ 1& 0 &1 &1 \\ 1& 1 &0 &1 \\ 1& 1 &1 &1 \end{matrix}

A 的 h 矩阵为:

\begin{matrix} 1 & 1 & 1 &1 \\ 2 & 0& 2 & 2\\ 3& 1& 0& 3\\ 4& 2& 1& 4 \end{matrix}

之后再枚举矩阵的底边,用单调栈就可以了.

存在障碍点的最大子矩阵学习:借鉴

很经典的国家集训队论文:浅谈用极大化思想解决最大子矩形问题

四.代码实现:

#include <set>
#include <map>
#include <ctime>
#include <queue>
#include <cmath>
#include <stack>
#include <bitset>
#include <vector>
#include <cstdio>
#include <sstream>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#define eps 1e-6
#define pi acos(-1.0)
#define ll long long int
using namespace std;

const int M = (int)1e3;
const ll inf = 0x3f3f3f3f3f;

int st[M + 5];
int width[M  +5];
int h[M + 5][M + 5];

priority_queue <int, vector<int>, greater<int> > q;

/**
4 4
1111
1011
1101
1111
**/

void add(int x)
{
    q.push(x);
    while(q.size() > 2)
        q.pop();
}

int main()
{
    int n, m;
    scanf("%d %d", &n, &m);
    int x;
    for(int i = 1; i <= n; ++i)
    {
        for(int j = 1; j <= m; ++j)
        {
            scanf("%1d", &x);
            h[i][j] = x ? h[i - 1][j] + 1: 0;
        }
        h[i][m + 1] = 0;
    }
    q.push(0);
    q.push(0);
    for(int i = 1; i <= n; ++i)
    {
        int top = 0;
        for(int j = 1; j <= m + 1; ++j)
        {
            if(st[top] < h[i][j])
            {
                st[++top] = h[i][j];
                width[top] = 1;
            }
            else
            {
                int w = 0;
                while(st[top] > h[i][j])
                {
                    w += width[top];
                    add(st[top] * w);
                    add(st[top] * (w - 1));
                    add((st[top] - 1) * w);
                    top--;
                }
                st[++top] = h[i][j];
                width[top] = w + 1;
            }
        }
    }
    printf("%d\n", q.top());
    return 0;
}

 

2022年灌溉试验设计与数据分析考试试题 2.表2数据为表层0~10cm的原状土离心机土壤水分特征曲线试验数据,(1)请利用R语言nls函数通过Van Genuchten方程对土壤体积含水率和土壤基质势进行拟合;(3)指明土壤基值势为-33 kPa和-1500kPa时的体积含水率。1.请根据表1数据,以灌溉模式为主区,生物炭用量为子区,利用R语言agricolae包生成裂区试验设计试验处理布置图;3.以R工具包factoextra中decathlon2数据集前10列为数据进行PCA分析,要求计算出(1)前5个主成分的特征值、特征向量; 阅读详情

相关推荐

SAP ABAP实战:手把手教你用BAPI_BILLINGDOC_CREATEMULTIPLE批量开票(附完整代码与避坑指南)

本文详细解析了SAP ABAP中BAPI_BILLINGDOC_CREATEMULTIPLE批量开票的全流程,包括参数配置、事务控制、错误处理及性能优化。通过实战案例和完整代码示例,帮助开发者高效处理大批量发票生成任务,避免常见陷阱,提升开发效率。

weixin_34101914的博客 266

最大01子矩阵问题(单调栈优化)

题目描述: 顾名思义,给定n*m大小的01矩阵,要求找到1数量最多的全1子矩阵 问题降阶: 思考二维问题前,先将问题降阶,思考该问题在一维状况下的解决方式会是一个比较好的思路。 题目链接: 485.Max Consecutive Ones 题意: 在01数组中寻找最长连续1的长度 思路: 简单的dp,维护数组中每个位置作为结尾的最长连续1长度。 代码: /* Author Owen_Q */ class Solution { public: int findMaxCons.

Owen_Q的博客 1565

超详细!思岚S2激光雷达hector_mapping建图

使用思岚S2激光雷达,在ros平台上利用hector_mapping功能包实现建图功能

m0_50965539的博客 5591

矩阵中找出01二维矩阵中只包含 1 的最大正方形,并输出其面积

矩阵中找出01二维矩阵中只包含 1 的最大正方形,并输出其面积 题目描述 输入两个正整数M和N作为二维矩阵的行和列,之后将该二维数组用输入的M*N个0或1填充。 找出二维矩阵中只包含 1 的最大正方形,并输出其面积。 输入输出描述及示例 第一行的输入为二维矩阵的行数M与列数N。 接下来共有M行每一行有N个元素(0或1)代表二维矩阵的元素 输出为只包含1的最大正方形面积 示例: 输入: 4...

weixin_41563161的博客 3015

芯片设计新手必看:5分钟搞懂工艺角(Process Corner)到底是什么,为啥仿真总要用它?

本文详细解析了芯片设计中的工艺角(Process Corner)概念及其在仿真中的重要性。通过类比马拉松运动员的性能差异,解释了晶体管制造过程中的天然波动,并介绍了TT/FF/SS等工艺角代码的含义。文章还探讨了为何需要跑全工艺角仿真,以及现代芯片验证的完整流程,包括PVT矩阵和多模式分析(MMMC),帮助芯片设计新手快速掌握这一关键概念。

weixin_28713947的博客 245

关于海康网络摄像头使用VLC或者Opencv拉流有延迟的问题

先说结论,我用VLC或者Pyhton opencv直接拉取海康网络摄像头的rtsp流,会有1-2s延时,特别明显。环境:Windows + VLC / Openc-Python。如上面文章介绍,我使用的时候遇到一处错误,需要把代码中的。海康SDK:与网页视频相比,几乎是同步的。上面说的延时,也是与摄像头网页视频相比的。ffplay 去掉缓存:延时1s左右。这两处地方改成左斜杠,才能运行。opencv拉流使用的是。多线程:延时1s左右。

yljxh的博客 4500

求全是1的子矩阵个数 / 单调栈

题 给定一个 n×mn×mn \times m 01矩阵,求全是1的子矩阵个数。 其中 n,m≤5000n,m≤5000n,m \le 5000。 解 暴力 先来说说暴力思路,最暴力就是四方枚举子矩阵,平方check,总复杂度 O(n6)O(n6)O(n^6) 不满。考虑有什么地方可以优化? 我们想到子矩阵之间是有包含关系的,如果找到一个全是1的大子矩阵,那么这个子矩阵的子矩阵肯定...

天狼_Sirius的博客 / SiriusNEO 3726

国际项目投标那些事(三)海外项目招标文件的组成

以一个实际的项目作为例子,是我2020年初投的一个东南亚国家的水厂的竞争性投标。这个投标的招标基于FIDIC yellow book (Design and Build) 合同模板。 海外项目的招标一般是有专门的咨询公司(consulting engineer)写招标文件,有的咨询公司非常专业,对于技术、合同、业绩的要求非常细致。 我这个项目的招标文件共5册 400多页(全英文),附件26册将...

WTSolutions的博客 2004

01矩阵问题

求极大全1矩阵个数 派大星有一个n*m的的矩阵。 定义全1子矩阵:为仅包含 0和1的子矩阵。 定义极大全 矩阵: 首先该矩阵是全 矩阵。 其次该矩阵不是其它某个全 矩阵的子矩阵。 派大星想知道它的矩阵中包含多少个极大全1 矩阵。 思路: 类似题目,演算法笔记上引出的问题是求面积最大的全1矩阵,这道题类似做法,在处理最大矩阵的过程中,判断当前的这个矩阵是否会被包含在后续求出来的矩阵中,假设在...

PinappleMi的博客 2987

电气比例阀采用外置传感器和PID控制器实现化学机械抛光(CMP)的超高精度压力控制

摘要:为大幅度提高现有CMP工艺设备中压力控制的稳定性,在现有电气比例阀这种单回路PID压力调节技术的基础上,本文提出了升级改造方案,即采用串级控制法(双回路PID控制,也称级联控制),通过在现有电气比例阀回路中增加更高精度的压力传感器和PID控制器,可以将研磨抛光压力的稳定性提高一个数量级,从1~2%的稳定性提升到0.1~0.2%。

Shanghai_Eyoung的博客 1291

从零到一:Qt与PCL的跨平台开发环境搭建全攻略

本文详细介绍了从零开始搭建Qt与PCL跨平台开发环境的完整流程,涵盖Windows、Linux和macOS三大平台。重点解析了Qt5与Qt6版本选择、PCL库安装配置、VTK集成等关键技术要点,并提供跨平台CMake项目模板和常见问题解决方案,助力开发者快速构建三维点云处理应用。

weixin_29280657的博客 384

01矩阵求最大子矩阵大小

问题:一个矩阵只含有0 1两种元素,求只包含1的最大子矩阵大小(大小用包含的1的个数表示) 假设矩阵大小为N x M,要求时间复杂度为O(NxM) 例如给定如下矩阵: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 Return 4 对这类的矩阵问题,可以逐行解决。 先思考这样一个问题,如何求一个数组{3 4 5 2...

anyao4142的博客 1594

RT-DETR改进策略【Conv和Transformer】| HiLo注意力机制 通过分离处理图像的高频和低频信息,高效处理图像特征

本文记录的是利用改进检测模型,针对目标检测中面临的多尺度特征融合效率与长距离依赖建模难题,HiLo注意力模块的引入旨在通过频率解耦策略优化高分辨率特征处理,将高频细节(如目标边缘)与低频语义(如场景结构)分离建模,提升目标检测精度。Fast Vision Transformers with HiLo AttentionHiLo注意力模块的提出源于对传统自注意力机制局限性的反思。传统多头自注意力(MSA)在处理高分辨率图像时存在以下问题:HiLo将注意力模块分为高频(Hi-Fi)和低频(Lo-Fi)两个分支,

Limiiiing的博客 818

2019牛客暑期多校训练营(第二场)H.Second Large Rectangle

2019牛客暑期多校训练营(第二场)H.Second Large Rectangle 题目链接 题目描述 Given a N×MN \times MN×Mbinary matrix. Please output the size of second large rectangle containing all "1"\texttt{"1"}"1". Containing all "1"\texttt{"1"}"1" means that the entries of the rectangle are al

旺崽的博客 2568

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

2019牛客暑期多校训练营(第二场)H - Second Large Rectangle(单调栈)

题目链接:https://ac.nowcoder.com/acm/contest/882/H 题意:求全是1的次大子矩阵。 思路:全是1的最大子矩阵的变形,不能直接把所有的面积存起来然后排序取第二大的,因为次大子矩阵可能在最大子矩阵里面比如: 1 0 0 1 1 1 1 1 1 如果全部存起来排序取第二大输出是3,正确答案是4。所以我们求面积的...

sugarbliss 527

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

2019牛客暑期多校训练营(第二场) H Second Large Rectangle 【次大全1子矩阵和】【单调栈】

题意: 给你一个n*m的只有 1 和 0 的矩阵, 求全是1的第二大的子矩阵的面积。 题目链接: https://ac.nowcoder.com/acm/contest/882/H 题解: 听说是陈年老题,可惜我不会 比赛一直在改就是不知道哪里错了qaq 比赛后看到有人用暴力写法A过了,惊了,我copy了他的代码交了一发,tle,牛客的服务器让我觉得好迷 然后看了队友的单调栈写法发...

OOOak 301

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

『单调栈』2019牛客暑期多校训练营(第二场)Second Large Rectangle

https://ac.nowcoder.com/acm/contest/882/H 题意: 给一个只有‘0’和‘1’的矩形,找到次大的全是‘1’的矩形,两个矩阵只要存在一个‘1’是属于A矩形而不属于B矩形 那么A和B就是不同的矩形 思路: 先使用单调栈求出最大子矩形,然后将这个最大子矩形的高hh,左边距离最近的点位置ll,右边距离最近的点位置rr,所在行ii记录下来,然后遍历一遍全图找到忽略已找到...

Miserable_ccf的博客 180

【2019牛客暑期多校训练营(第二场) - H】Second Large Rectangle(单调栈,全1子矩阵变形)

题干: 链接:https://ac.nowcoder.com/acm/contest/882/H 来源:牛客网 题目描述 Given a N×MN \times MN×M binary matrix. Please output the size of second large rectangle containing all "1"\texttt{"1"}"1". Containing...

xuanweiace的博客 462

【2019牛客暑期多校训练营 第二场 H题 Second Large Rectangle】【最大全1子矩阵 -> 次大全1子矩阵】【递推做法和单调栈做法】

题目链接: https://ac.nowcoder.com/acm/contest/882/H 题意: 给你一个N * M的01矩阵,求次大全1的子矩阵的面积(可以等于最大的子矩阵)。 题解: 要会这题,首先要会求最大的全1子矩阵,可以先去练一下洛谷P4147玉蟾宫。 这里介绍两种方法,一种是递推做的,另一种是单调栈做的(待更)。 首先是递推做的 记left[i][j]left[i][j]left...

流水 257

2019牛客暑期多校训练营(第二场)H-Second Large Rectangle(二维01矩阵最大矩形)

链接:https://ac.nowcoder.com/acm/contest/882/H 来源:牛客网 题目描述 给出N*M的二维矩阵,每个位置为0或1,求其中第二大的全为1的矩阵的面积,不存在输出0。 输入 1 2 01 输出 0 输入 1 3 101 输出 1 题目分析: 用O(N*M)的时间处理出每个up[i][j],表示位置(i,j)往上连续的1的...

kzn的博客 327

2019牛客暑期多校训练营(第二场)H——Second Large Rectangle(思维题,求第二大全1矩阵)

链接:https://ac.nowcoder.com/acm/contest/882/H 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 Given a N×MN×M binary matrix. Please output the size of second l...

lgz0921的博客 512

2019牛客暑期多校训练营(第二场)H Second Large Rectangle(单调栈)

Second Large Rectangle 题意:求第二大的全为1的矩形。 题解:将矩形分为mmm个竖条,记录每一行1的高度,然后维护一个递增的单调栈,每当新的竖条的高度小于栈顶高度时,维护栈的单调性,在弹出竖条的同时更新答案。如果最大值由x×yx \times yx×y更新,那么求第二大我们还需要通过x×(y−1)x \times (y - 1)x×(y−1)和(x−1)×y(x-1)\tim...

Eternally831143的博客 236

2019牛客暑期多校训练营(第二场)H Second Large Rectangle

题目链接:https://ac.nowcoder.com/acm/contest/882/H 题目描述 Given a N×M binary matrix. Please output the size of second large rectangle containing all "1". Containing all"1"means that the entries of the ...

Helloirbd的博客 269

2019牛客暑期多校训练营(第二场) H Second Large Rectangle(单调栈)

链接:https://ac.nowcoder.com/acm/contest/882/H 题意:给你n、m,再给出一个n行m列的只含"0"或"1"的字符矩阵。求全是"1"的第二大矩阵的大小。 思路:做过求最大矩阵的,当时用的单调栈。读完题,就想求第二大不就在更新最大的时候再更新一下第二大不就得了。写完,随便造一个样例,就不行。后来,改了很久才想到,更新最大的时候可能会用到相同的矩形。枚举每一行...

birdmanqin的博客 213

2019牛客暑期多校训练营(第二场)----H-Second Large Rectangle

首先发出题目链接: 链接:https://ac.nowcoder.com/acm/contest/882/H 来源:牛客网 涉及:单调栈 点击这里回到2019牛客暑期多校训练营解题—目录贴 题目如下: 代码如下: #include <iostream> #include <vector> #include <cstring> #include <a...

weixin_43702895的博客 255

2019牛客暑期多校训练营(第二场)H Second Large Rectangle(第二大子矩阵)

代码已注释 AC代码: 语言:C++代码长度:2117运行时间: 32 ms占用内存:4572K 1 #include<bits/stdc++.h> 2 #define numm ch-48 3 #define pd putchar(' ') 4 #define pn putchar('\n') 5 #define pb push_back 6...

weixin_30376453的博客 86
上一篇: Kth Minimum Clique(2019牛客暑期多校训练营(第二场)D,K 大完全子图)
下一篇: MAZE(2019牛客暑期多校训练营(第二场)E,线段树 + 矩阵乘法)
The___Flash
博客等级 码龄8年 79粉丝 223原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值