构造前缀贪心+ 计蒜客 子矩阵求和

题目:

给出一个 nn 行 mm 列的矩阵,矩阵的每个位置有一个非负整数 a[i][j],有 qq 次询问,每次询问求一个左上角为 (a,b),右下角为 (c,d) 的子矩阵的所有数之和。

输入格式

第一行两个整数 n,m,表示矩阵的行和列的大小。

接下来 nn 行每行 m 个整数,为矩阵内容。

接下来一行为一个整数 q ,表示询问次数。

接下来 q 行每行 44 个整数 a,b,c,d,含义见题面。

输出格式

共 q 行,第 i 行为第 i个询问的答案。

数据范围
n×m≤100,000,a[i][j]≤1000,q≤100,000,1≤a≤c≤n,1≤b≤d≤m。n×m≤100,000,a[i][j]≤1000,q≤100,000, 1≤a≤c≤n,1 \le b \le d \le m。n×m100,000a[i][j]1000q100,0001acn1bdm

输出时每行末尾的多余空格,不影响答案正确性

要求使用「文件输入输出」的方式解题,输入文件为 sum.in,输出文件为 sum.out

样例输入

3 5
1 2 3 4 5
3 2 1 4 7
2 4 2 1 2
3
1 1 3 5
2 2 3 3
1 1 3 3

样例输出

43
9
20

分析:

1、先打表计算二维前缀和,再进行之后每次的查询。
2、需要使用数据结构vector存储数据。因为n×m≤100,000n×m≤100,000n×m100,000,要是开二维数组会爆,所以用vector容器存数据。
在这里插入图片描述
如图所示,假设要求S的话,可以用最大的矩形和减去S1+S2,再减去S1+S3,最后再加上S1即可。

AC代码:

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#include<vector>
using namespace std;
const int M=1e5+10;
const int inf=0x3f3f3f3f;
int n,m,k;
vector<int>mp[M];
int main(){freopen("sum.in", "r", stdin);freopen("sum.out", "w", stdout);scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){mp[i].push_back(0);for(int j=1;j<=m;j++){int x;scanf("%d",&x);mp[i].push_back(x);}}for(int i=0;i<=m;i++)mp[0].push_back(0);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)mp[i][j]+=mp[i-1][j]+mp[i][j-1]-mp[i-1][j-1];scanf("%d",&k);while(k--){int a,b,c,d;scanf("%d%d%d%d",&a,&b,&c,&d);int ans=mp[c][d]+mp[a-1][b-1]-mp[a-1][d]-mp[c][b-1];printf("%d\n",ans);}
}
/**
5 5
636 848 745 281 87
895 796 850 713 242
16 128 270 845 922
338 690 30 327 273
779 154 192 656 64
5
2 1  4 2
1 1  1 1
2 1  4 2
2 1  4 2
2 1  2 3
*/

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

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

相关文章

[JavaWeb-XML]约束(DTD,Schema)

DTD&#xff1a; * 引入dtd文档到xml文档中* 内部dtd&#xff1a;将约束规则定义在xml文档中* 外部dtd&#xff1a;将约束的规则定义在外部的dtd文件中* 本地&#xff1a;<!DOCTYPE 根标签名 SYSTEM "dtd文件的位置">* 网络&#xff1a;<!DOCTYPE 根标签名 …

[跨平台系列三Docker篇]:ASP.NET Core应用

如果你是老张的忠实读者的话&#xff0c;如果是从博客园就开始看我的文章的话&#xff0c;如果后期也一直看我公众号的话&#xff0c;应该就知道其实我一直在根据一条无形的教学线路来讲解的&#xff0c;&#xff0c;如果你真的是想好好学的话&#xff0c;请好好看看我之前的文…

2020牛客国庆集训派对day2 F题 Java大数处理

题目&#xff1a; 链接&#xff1a;https://ac.nowcoder.com/acm/contest/16913/F 来源&#xff1a;牛客网 The following code snippet calculates the sum of the areas of all the sub rectangular grid in a rectangular grid from (0,0) to (N,N)\ .(N,N) . Find an eff…

[JavaWeb-XML]XML_快捷查询方式(selector选择器,XPath)

快捷查询方式&#xff1a; 1. selector:选择器* 使用的方法&#xff1a;Elements select​(String cssQuery)* 语法&#xff1a;参考Selector类中定义的语法2. XPath&#xff1a;XPath即为XML路径语言&#xff0c;它是一种用来确定XML&#xff08;标准通用标记语言的子集&#…

[壹刊]Azure AD(四)知识补充-服务主体

一&#xff0c;引言又到了新的一周了&#xff0c;也到了我新的分享的时间了&#xff0c;还记得上一周立得Flag&#xff0c;其中 “保证每周输出一篇文章” &#xff0c;让我特别“在意”&#xff08;这里用词不太恰当&#xff09;。主要是我的一个大学舍友&#xff0c;他突然问…

前缀和优化+计蒜客 泡咖啡

题目: 蒜头君想泡咖啡喝。现在他得到了 nn 份菜谱&#xff0c;每个菜谱上都给了两个数l,rl,rl,r代表温度区间在[l,r][l,r][l,r] 度泡出来的咖啡会很好喝。 可是菜谱太多了&#xff0c;蒜头君一度感到疑惑。经过思考之后他得出了一个结论&#xff1a;某个温度只要有 k 份或者更…

[JavaWeb-Servlet]Servlet_执行原理

执行原理&#xff1a; 1. 当服务器接受到客户端浏览器的请求后&#xff0c;会解析请求URL路径&#xff0c;获取访问的Servlet的资源路径2. 查找web.xml文件&#xff0c;是否有对应的<url-pattern>标签体内容。3. 如果有&#xff0c;则在找到对应的<servlet-class>全…

分享我在前后端分离项目中Gitlab-CI的经验

之前我分享了为ASP.NET Core后端搭建Gitlab-CI/CD实践&#xff0c;今天继续聊一聊为前后端分离搭建Gitlab-CI的额外经验。BeforeGitlab-ci是Gitlab提供的CI/CD特性&#xff0c;结合Gitlab简单友好的配置界面&#xff0c;能愉悦的在Gitlab界面查看管道执行流程&#xff0c;并自然…

最短路(遍历边)计蒜客—DD坐地铁

题目&#xff1a; C 城有 n 个站点&#xff0c; m 条双向地铁&#xff0c;每条地铁有一个 companyicompany_icompanyi​表示它的公司&#xff0c;如果连续乘坐同一家公司的地铁只要花 1元钱就好。DD现在想出门找萨摩耶玩&#xff0c;但是 DD 是贫困人口&#xff0c; 她想知道最…

[JavaWeb-Servlet]Servlet中的生命周期方法(init,service,destroy)

Servlet中的生命周期方法&#xff1a; Override public void init(ServletConfig servletConfig) throws ServletException {}1. 被创建&#xff1a;执行init方法&#xff0c;只执行一次* Servlet什么时候被创建&#xff1f;* 默认情况下&#xff0c;第一次被访问时&#xff0…

lin-cms-dotnetcore.是如何方法级别的权限控制(API级别)的

方法级别的权限控制&#xff08;API级别&#xff09;Lin的定位在于实现一整套 CMS的解决方案&#xff0c;它是一个设计方案&#xff0c;提供了不同的后端&#xff0c;不同的前端&#xff0c;而且也支持不同的数据库目前官方团队维护 lin-cms-vue,lin-cms-spring-boot,lin-cms-k…

线段树维护区间最大值+第 45 届(ICPC)亚洲区域赛(昆明)L题Simone and Graph Coloring

题意&#xff1a; 给你n个数的序列&#xff0c;当满足i<ji<ji<j andandand ai>aja_i>a_jai​>aj​时&#xff0c;这两个点之间有一条边&#xff0c;现在对点染色&#xff0c;要求每个点相邻的点颜色不同&#xff0c;问如何染色使得不同颜色数量最小。 题目…

[JavaWeb-Servlet]Servlet3.0注解配置

Servlet3.0&#xff1a; * 好处&#xff1a;* 支持注解配置。可以不需要web.xml了。* 步骤&#xff1a;1. 创建JavaEE项目&#xff0c;选择Servlet的版本3.0以上&#xff0c;可以不创建web.xml2. 定义一个类&#xff0c;实现Servlet接口3. 复写方法4. 在类上使用WebServlet注解…

基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(四)

系列文章使用 abp cli 搭建项目给项目瘦身&#xff0c;让它跑起来完善与美化&#xff0c;Swagger登场数据访问和代码优先自定义仓储之增删改查统一规范API&#xff0c;包装返回模型再说Swagger&#xff0c;分组、描述、小绿锁接入GitHub&#xff0c;用JWT保护你的API异常处理和…

字符串相关

文章目录字符串基础字符串的存储标准库字符串匹配单串匹配多串匹配其他类型的字符串匹配问题字符串哈希Hash 的实现Hash 的分析与改进错误率多次询问子串哈希Hash 的应用字符串匹配允许 k次失配的字符串匹配最长回文子串最长公共子字符串确定字符串中不同子字符串的数量字典树 …

[JavaWeb-Servlet]IDEA与Tomcat的相关配置

IDEA与tomcat的相关配置 1. IDEA会为每一个tomcat部署的项目单独建立一份配置文件* 查看控制台的log&#xff1a;Using CATALINA_BASE: "C:\Users\fqy\.IntelliJIdea2018.1\system\tomcat\_itcast"2. 工作空间项目 和 tomcat部署的web项目* tomcat真正访问…

C#9.0 终于来了,您还学的动吗? 带上VS一起解读吧!

一&#xff1a;背景1. 讲故事好消息&#xff0c;.NET 5.0 终于在2020年6月10日发布了第五个预览版&#xff0c;眼尖的同学一定看到了在这个版本中终于支持了 C# 9.0&#xff0c;此处有掌声&#xff0c;太好了&#xff01;&#xff01;&#xff01;.Net5官方链接可以看到目前的C…

KMP模式串匹配+Compress Words CodeForces - 1200E

题意&#xff1a; 给你若干个字符串&#xff0c;答案串初始为空。第 iii 步将第 iii 个字符串加到答案串的后面&#xff0c;但是尽量地去掉重复部分&#xff08;即去掉一个最长的、是原答案串的后缀、也是第 iii个串的前缀的字符串&#xff09;&#xff0c;求最后得到的字符串…

.NET Core 反射获取所有控制器及方法上特定标签

有个需求&#xff0c;就是在. NET Core中&#xff0c;我们想在项目 启动时&#xff0c;获取LinCmsAuthorizeAttribute这个特性标签所有出现的地方&#xff0c;把他的参数&#xff0c;放入一个集合并缓存起来&#xff0c;以便后面使用此数据用于权限验证。我们通过反射获取所有控…

[JavaWeb-Servlet]Servlet的体系结构

Servlet的体系结构 Servlet -- 接口|GenericServlet -- 抽象类|HttpServlet -- 抽象类* GenericServlet&#xff1a;将Servlet接口中其他的方法做了默认空实现&#xff0c;只将service()方法作为抽象* 将来定义Servlet类时&#xff0c;可以继承GenericServlet&#xff0c;实现…