双指针的一些题目

news2024/11/15 19:59:56

题目1:统计子矩阵

4405. 统计子矩阵 - AcWing题库

解题

前缀和+暴力枚举x1、y1、x2、y2的做法是O(n^{4})的,考虑用双指针进行优化。

优化的方式是:我们将每一列在[x1,x2]范围内的部分看作一个整体,用指针维护左右边界。

当当前矩阵的和大于k时,y1后移。

最后,我们为结果加上y2-y1+1(以y1开头,y2=[y1,y2]的子矩阵,共y2-y1+1个)。因为每次我们的y1、y2每次只向右移动一位,因此在计算时,只需要计算包含了y1这一列的子矩阵即可,如果计算全部的子矩阵,会在下一次计算时有重复。

#include<iostream>
using namespace std;
const int N=510;
int n,m,k;
int a[N][N];
int s[N][N];
int main()
{
    scanf("%d%d%d",&n,&m,&k);
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++) 
        {
            scanf("%d",&a[i][j]);
            a[i][j]+=a[i-1][j];
        }
    long long res=0;
    for(int x1=1;x1<=n;x1++)
        for(int x2=x1;x2<=n;x2++)
            for(int y1=1,y2=1,sum=0;y2<=m;y2++)
            {
                sum+=(a[x2][y2]-a[x1-1][y2]);
                while(sum>k)
                {
                    sum-=(a[x2][y1]-a[x1-1][y1]);
                    y1++;
                }
                res+=(y2-y1+1);
            }
    printf("%lld",res);
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

直播预告|从一张 CD 说起,关于播放器的前世今生

1877 年&#xff0c;天才发明家爱迪生研发出了人类历史上第一台可以录音和放音的装置&#xff0c;被称为“话筒”。 当时&#xff0c;这台机器使用一张薄薄的铁箔盘来录制声音&#xff0c;爱迪生亲手转动铁箔盘&#xff0c;在上面刻下声音的波纹。不过这个设计并不太实用&…

python中的defaultdict

collections.defaultdict 是 collections 模块提供的一个有用的类&#xff0c;它是内置字典类 dict 的一个子类。与普通字典一样&#xff0c;可以进行元素的访问、添加、删除等操作。区别在于当访问一个不存在的键时&#xff0c;defaultdict 会返回默认值&#xff0c;而不会引发…

ArcGIS学习(十二)ModelBuilder参数化建模

ArcGIS学习(十二)ModelBuilder参数化建模 1.ModelBuilder应用基础 本任务给大家带来的是ArcGIS中一个非常有意思也很重要的模块一-ModelBuilder。ModelBuilder有什么用呢? 大家设想一下这些场景: 你在做一项复杂研究,使用到ArcGIS中的多个工具和步骤,包括缓冲区分析、空…

建立网络防御时需要重点考虑的10个因素

互联网安全中心&#xff08;CIS&#xff09;建议企业可以从以下10个因素入手&#xff1a;资产管理、数据管理、安全配置、账户和访问控制管理、漏洞管理、日志管理、恶意软件防御、数据恢复、安全培训和事件响应。 1、资产管理 建立网络防御的第一步是制定企业资产和软件资产的…

居间中介CRM系统:提升销售业绩,有效管理企业客户资源

居间中介CRM系统是一种用于提升销售业绩和有效管理企业客户资源的软件系统。它能够帮助居间中介机构跟踪和管理客户关系&#xff0c;提高销售团队的工作效率和组织能力。 鑫鹿居间中介CRM系统具备以下功能&#xff1a; 1. 客户管理 系统可以记录和维护客户的基本信息&#xf…

Nano 33 BLE Sense Rev2学习第一节——环境配置

参考文档见Access Barometric Pressure Sensor Data on Nano 33 BLE Sense | Arduino Documentation 打开Arduino ide安装开发板 选择开发板 连接开发板到电脑&#xff0c;自动识别开发板端口&#xff0c;选择端口

小华最多能得到多少克黄金 - 华为OD统一考试(C卷)

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 100分 题解&#xff1a; Java / Python / C 题目描述 小华按照地图去寻宝&#xff0c;地图上被划分成 m 行和 n 列的方格横纵坐标范围分别是[ 0 ,n−1]和[ 0 , m−1]。 在横坐标和纵坐标数位之和不大于 k 的方格中存…

了解现货黄金的技术分析技巧

在金融市场&#xff0c;特别是现货黄金交易领域中&#xff0c;投资者和交易者都致力于寻找那些可以带来盈利的秘诀与策略。黄金作为一种避险资产&#xff0c;其价格受到众多因素的影响&#xff0c;包括全球经济状况、货币政策、市场需求等。因此&#xff0c;掌握现货黄金的技术…

如何分辨Mac设备X86或ARM

在终端中输入如下命令可以获取到当前 Mac 设备是 X86 还是 ARM 类型 uname -a 以上便是此次分享的全部内容&#xff0c;希望能对大家有所帮助!

ModuleNotFoundError:如何解决 no module named Python 错误?

1.问题描述 下面的python执行时&#xff1a; import chinese_calendar import datetime def is_holiday(year, month, day):return chinese_calendar.is_holiday(year, month, day) # 判断2023年2月14日是否为节假日 print(is_holiday(2023, 2, 14)) # 输出: False报错如下&a…

AI从截图直接生成代码、前端程序员的福音

简介 项目可以将任何屏幕截图或设计转换为干净的代码&#xff08;支持大多数框架&#xff09;。来自领先公司的开发人员和设计师使用的排名第一的工具。完全开源&#xff0c;在 GitHub 上拥有超过 35,000 颗星。非常受欢迎。 各位小伙伴们感觉有帮助的&#xff0c;可以收藏一…

Docker中使用nginx-rtmp推拉网络摄像头视频流

前言&#xff1a; 该部分比较麻烦&#xff0c;闹腾了好久&#xff08;ffmpeg推拉流没学过&#xff0c;事实证明依葫芦画瓢是不行滴&#xff0c;后面有时间再学吧&#xff09;&#xff0c;后来借助chatGPT勉强解决&#xff0c;但不是很懂。因个人能力有限&#xff0c;只复述操作…

前端部署真的不简单

公众号&#xff1a;程序员白特&#xff0c;欢迎一起交流学习~> 原文&#xff1a;前端部署真的不简单 - 掘金 (juejin.cn) 现在大部分的中小型公司部署前端代码都是比较简单的&#xff0c;主要步骤如下: 首先&#xff0c;通过脚手架提供的命令npm run build打包前端代码&…

外汇天眼:蓝莓市场终止所有MT4/MT5专业公司业务

总部位于澳大利亚的零售外汇和差价合约经纪商蓝莓市场宣布&#xff0c;已终止其数据和平台服务产品&#xff0c;该产品旨在通过利用其基础设施为专业公司行业提供服务。 蓝莓市场表示&#xff0c;已经对其数据和平台服务产品“落下帷幕”&#xff0c;与所有专业交易公司包括MyF…

3分钟开通GPT-4

AI从前年12月份到现在已经伴随我们一年多了&#xff0c;还有很多小伙伴不会开通&#xff0c;其实开通很简单&#xff0c;环境需要自己搞定&#xff0c;升级的话就需要一张visa卡&#xff0c;办理visa卡就可以直接升级chatgptPLSU 一、虚拟卡支付 这种方式的优点是操作简单&…

html邮件基本使用方法?如何发送HTML邮件?

html邮件是什么意思&#xff1f;如何在HTML中创建电子邮件链接&#xff1f; HTML邮件以其丰富的格式和视觉效果&#xff0c;让我们的邮件内容更加生动和吸引人。那么&#xff0c;HTML邮件的基本使用方法是什么呢&#xff1f;我们又该如何发送HTML邮件呢&#xff1f;下面&#…

Linux之HTTP协议

目录 一、HTTP协议 1.1 HTTP概念 1.2 HTTP协议的格式 1.3 URL 1.4 HTTP的请求方法 1.5 HTTP的状态码 1.6 HTTP报头 1.7 长链接与短链接 1.8 Cookie与Session 1.8.1 Cookie的概念 1.8.2 Cookie的应用场景 1.8.3 Session的概念 一、HTTP协议 1.1 HTTP概念 HTTP&…

使用Javassist 在android运行时生成类

序言 最近在写框架&#xff0c;有一个需求就是动态的生成一个类&#xff0c;然后查阅了相关文献&#xff0c;发现在android中动态生成一个类还挺麻烦。因次把一些内容分享出来&#xff0c;帮助大家少走弯路。 方案一 DexMaker DexMaker 是一个针对 Android 平台的库&#xf…

Java动态转发代理IP的实现方法

目录 前言 一、代理IP池的管理 二、代理IP的请求转发 总结 前言 在某些情况下&#xff0c;我们可能需要在Java应用程序中使用代理IP来进行网络请求。而有时候&#xff0c;我们希望能够动态地切换代理IP&#xff0c;以增加请求的成功率和效果。本文将介绍如何在Java中实现动…

【深度学习笔记】5_8 网络中的网络NiN

注&#xff1a;本文为《动手学深度学习》开源内容&#xff0c;部分标注了个人理解&#xff0c;仅为个人学习记录&#xff0c;无抄袭搬运意图 5.8 网络中的网络&#xff08;NiN&#xff09; 前几节介绍的LeNet、AlexNet和VGG在设计上的共同之处是&#xff1a;先以由卷积层构成的…