题目 3161: 蓝桥杯2023年第十四届省赛真题-子矩阵

 题目

 

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1010, mod = 998244353;
int g[N][N];
int rmin[N][N], rmax[N][N];
ll mmin[N][N], mmax[N][N];
int q[N * N];
int hh, tt;
int n, m, a, b;
int main()
{
  cin >> n >> m >> a >> b;
  for (int i = 1; i <= n; i++)
  {
    for (int j = 1; j <= m; j++)
    {
      cin >> g[i][j];
    }
  }

  for (int i = 1; i <= n; i++)
  {
    hh = 0, tt = -1;
    for (int j = 1; j <= m; j++)
    {
      if (hh <= tt && j - q[hh] + 1 > b)
        hh++;
      while (hh <= tt && g[i][q[tt]] >= g[i][j])
        tt--;
      q[++tt] = j;
      if (j >= b)
        rmin[i][j - b + 1] = g[i][q[hh]];
    }
  }

  for (int j = 1; j <= m; j++)
  {
    hh = 0, tt = -1;
    for (int i = 1; i <= n; i++)
    {
      if (hh <= tt && i - q[hh] + 1 > a)
        hh++;
      while (hh <= tt && rmin[q[tt]][j] >= rmin[i][j])
        tt--;
      q[++tt] = i;
      if (i >= a)
        mmin[i - a + 1][j] = rmin[q[hh]][j];
    }
  }

  for (int i = 1; i <= n; i++)
  {
    hh = 0, tt = -1;
    for (int j = 1; j <= m; j++)
    {
      if (hh <= tt && j - q[hh] + 1 > b)
        hh++;
      while (hh <= tt && g[i][q[tt]] <= g[i][j])
        tt--;
      q[++tt] = j;
      if (j >= b)
        rmax[i][j - b + 1] = g[i][q[hh]];
    }
  }

  for (int j = 1; j <= m; j++)
  {
    hh = 0, tt = -1;
    for (int i = 1; i <= n; i++)
    {
      if (hh <= tt && i - q[hh] + 1 > a)
        hh++;
      while (hh <= tt && rmax[q[tt]][j] <= rmax[i][j])
        tt--;
      q[++tt] = i;
      if (i >= a)
        mmax[i - a + 1][j] = rmax[q[hh]][j];
    }
  }

  ll ans = 0;
  for (int i = 1; i + a - 1 <= n; i++)
  {
    for (int j = 1; j + b - 1 <= m; j++)
    {
      ans = (ans + (mmin[i][j] * mmax[i][j]) % mod) % mod;
    }
  }

  cout << ans;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/894959.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

明日周刊-第23期

十月已过半&#xff0c;气温也转凉了&#xff0c;大家注意保温哦。冬吃萝卜&#xff0c;夏吃姜&#xff0c;在快要到来的冬季大家可以选择多吃点萝卜。 配图是本周末去商场抓娃娃的时候拍的照片&#xff0c;现在抓娃娃单次普遍都控制在1块钱以下了&#xff0c;还记得多年前的抓…

鑫方盛携手纷享销客打造工业品采购领域CRM数字样板

鑫方盛集团有限公司(以下简称"鑫方盛")始创于1989年,是国内领先的集数字化平台打造、工业品全品类销售以及国际贸易于一体的一站式工业品服务平台。 集团拥有海内外90多家分公司,年营收超百亿元。为全球十万余家包括加工制造、航天军工、能源电力、钢铁冶金、水利水…

GS-SLAM论文阅读--GSORB-SLAM

前言 文章目录 前言1.背景介绍2.关键内容2.1 建图2.2跟踪2.3总体流程 3.文章贡献4.个人思考 1.背景介绍 3D高斯飞溅&#xff08;3DGS&#xff09;的出现最近引发了密集视觉SLAM研究的新浪潮。然而当前的方法面临着诸如对伪影和噪声的敏感性、训练视点的次优选择以及缺乏全局优…

(小白教程)MPV.NET 播放器安装和添加Bilibili弹幕

MPV.NET安装和添加脚本 MPV跨平台播放器&#xff1a;该播放器基于流行的mpv媒体播放器。mpv.net 设计为与 mpv 兼容&#xff0c;几乎所有 mpv 功能都可用&#xff0c;这意味着官方mpv 手册适用于 mpv.net&#xff0c;差异记录在mpv.net 手册中。 主要差异是mpv.net为MPV添加了现…

c语言经典100例

1.字符串转为数字 #include <stdio.h>int strToInt(char *s) {int num0;int sign1;int step1;if (*s -){sign -1;s;}while (*s > 0&&*s < 9){num num*10(*s-0);step 10;s;}return num*sign; }int main() {char a[10] "-1234";char *s a ;pr…

Spring Boot技术栈的电影评论网站构建

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式&#xff0c;是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示&#xff1a; 图4-1系统工作原理…

Linux中修改和查看Redis的内存大小

目录 一&#xff1a;修改redis内存大小1. 编辑配置文件2. 在命令行修改 二&#xff1a;查看redis内存大小1. get maxmemory2. info memory 一&#xff1a;修改redis内存大小 1. 编辑配置文件 sudo vim /etc/redis/redis.conf maxmemory 300MB1、Redis可用内存大小只能是整数&…

【nlp】知识蒸馏Distilling

一、知识蒸馏介绍 1. 什么是知识蒸馏&#xff1f; 知识蒸馏&#xff08;Knowledge Distillation&#xff09; 是一种用于模型压缩的技术&#xff0c;通过让小模型&#xff08;称为学生模型&#xff0c;student model&#xff09;从大模型&#xff08;称为教师模型&#xff0c;…

无人机初识及应用概览

随着科技的飞速发展&#xff0c;无人机作为一种新兴技术产品&#xff0c;逐渐走进了我们的日常生活和学习中。以下是对该文内容的全面总结&#xff0c;旨在帮助读者更好地理解和认识无人机的基本概念、分类、应用领域、国产标杆品牌以及四旋翼无人机的具体组成。 一、无人机的概…

联邦学习实验复现—MNISIT IID实验 pytorch

联邦学习论文复现&#x1f680; 在精度的联邦学习的论文之后打算进一步开展写一个联邦学习的基础代码&#xff0c;用于开展之后的相关研究&#xff0c;首先就是复现一下论文中最基础也是最经典的MNIST IID(独立同分布划分) 数据集。然后由于这个联邦学习的论文是谷歌发的&#…

html基础小练习

需求&#xff1a;实现如上图网页 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>注册界面</title></head><body><div><form action""><table width"400"><t…

Java21虚拟线程:我的锁去哪儿了?

0 前言 最近的文章中&#xff0c;我们详细介绍了当我们迁移到 Java 21 并将代际 ZGC 作为默认垃圾收集器时&#xff0c;我们的工作负载是如何受益的。虚拟线程是我们在这次迁移中兴奋采用的另一个特性。 对虚拟线程新手&#xff0c;它们被描述为“轻量级线程&#xff0c;大大…

推荐10 个令人惊叹的 Python 自动化脚本!

/01/ 剪贴板管理器 你是否曾发现自己忙于处理多个文本片段&#xff0c;而忘记了自己复制了什么&#xff1f;有没有想过有一个工具可以记录你一天中复制的所有内容&#xff1f; 这个自动化脚本可以监控你复制的所有内容&#xff0c;将复制的每个文本无缝地存储在一个时尚的图形…

C++ 在项目中使用GDB

一&#xff1a;GDB 的 TUI 模式使用 GDB的 TUI &#xff08;Text User Interface&#xff09;模式提供了一种图形化的调试体验&#xff0c;允许在终端中同时显示源代码&#xff0c;寄存器和汇编代码等信息&#xff0c;下面是GDB TUI的基本操作和快捷键 1. 显示源代码窗口&…

【C++】类的默认成员函数:深入剖析与应用(上)

&#x1f600;在上一篇文章中我们初步了解了C的基础概念&#xff0c;现在我们进行对C类的默认成员函数进行更加深入的理解&#xff01; &#x1f449;【C新手入门指南&#xff1a;从基础概念到实践之路】 目录 &#x1f4af;前言 &#x1f4af;构造函数 一、构造函数的定义…

常见TCP/IP协议基础——计算机网络

目录 前言常见协议基础常见协议-基于TCP的应用层协议常见协议-基于UDP的应用层协议常见协议-网络层协议习题自测1.邮件发送协议2.接收邮件协议端口3.建立连接4.层次对应关系5.FTP服务器端口 前言 本笔记为备考软件设计师时的重点知识点笔记&#xff0c;关于常见TCP/IP协议基础…

【飞腾加固服务器】全国产化解决方案:飞腾FT2000+/64核,赋能关键任务保驾护航

在信息安全和自主可控的时代背景下&#xff0c;国产化设备的需求与日俱增&#xff0c;尤其是在国防、航空航天、能源和其他关键行业。高可靠性和极端环境设计的国产加固服务器&#xff0c;搭载强大的飞腾FT2000/64核处理器&#xff0c;全面满足国产自主可控的严苛要求。 性能强…

Python案例小练习——小计算器

文章目录 前言一、代码展示二、运行展示 前言 这是用python实现一个简单的计器。 一、代码展示 def calculate(num1, op, num2):if op "":return float(num1) float(num2)elif op "-":return float(num1) - float(num2)elif op "*":return…

stable diffusion安装ai绘画真人动漫win中文版软件

前言 所有的AI设计工具&#xff0c;安装包、模型和插件&#xff0c;都已经整理好了&#xff0c;&#x1f447;获取~ Stable Diffusion&#xff08;简称SD&#xff09;&#xff0c;是通过数学算法实现文本输入&#xff0c;图像输出的开源软件&#xff01; 引用维基百科&#x…

expect工具

一.expect工具介绍 在写脚本的过程当中不可避免的需要去写交互式命令 那么如何让交互式命令在脚本中自动执行&#xff1f; 使用expect工具 作用&#xff1a;捕获交互式的输出&#xff0c;自动执行交互式命令 如上图所示&#xff0c;可以使用expect工具去捕获交互式命令的提…