当前位置: 首页 > news >正文

4.前缀和

一.一维前缀和

题目连接如下:

https://ac.nowcoder.com/acm/problem/226282

1.算法分析

暴力解法会超时的,这里就不讲解了

2.代码实现

#include <iostream>using namespace std;
typedef long long LL;const int N = 1e5 + 10;
int n,q;
LL a[N];
LL f[N]; //前缀和数组int main()
{cin >> n >> q;for(int i = 1;i <= n; i++){cin >> a[i];}//处理前缀和数组for(int i = 1;i <= n;i++){f[i] = f[i - 1] + a[i];}while(q--){int l,r;cin >> l >> r;cout << f[r] - f[l - 1] << endl;}return 0;
}

二.最大字段和

题目连接如下:

https://www.luogu.com.cn/problem/P1115

1.算法分析

2.代码实现

每一次我们的prevmin都是通过我们的f[i]来进行更新的

#include <iostream>using namespace std;
typedef long long LL;const int N = 2e5 + 10;int n;
LL f[N]; // 前缀和数组int main()
{cin >> n;for(int i = 1;i <= n;i++){LL x;cin >> x;f[i] = f[i - 1] + x;}LL ret = -1e20;LL prevmin = 0;for(int i = 1;i <= n;i++){ret = max(ret,f[i] - prevmin);prevmin = min(prevmin,f[i]);}cout << ret << endl;return 0;
}

三.二维前缀和

题目连接如下:

https://ac.nowcoder.com/acm/problem/226333

1.算法分析

上面暴力还是会超时的

最终得出我们的结论,如下:

2.代码实现

#include <iostream>using namespace std;
typedef long long LL;const int N = 1010;
int n,m,q;
LL f[N][N];int main()
{cin >> n >> m >> q;for(int i = 1;i <= n;i++){for(int j = 1;j <= m;j++){LL x;cin >> x;f[i][j] = f[i - 1][j] + f[i][j - 1] - f[i - 1][j - 1] + x;}}while(q--){int x1,y1,x2,y2;cin >> x1 >> y1 >> x2 >> y2;cout << f[x2][y2] - f[x1 - 1][y2] - f[x2][y1 - 1] + f[x1 - 1][y1 - 1] << endl;}return 0;
}

四.激光炸弹

题目连接如下:

https://www.luogu.com.cn/problem/P2280

1.算法分析

2.代码实现

#include <iostream>using namespace std;
typedef long long LL;const int N = 5010;
int n,m;
int a[N][N];
int f[N][N]; //前缀和矩阵int main()
{cin >> n >> m;while(n--){int x,y,v;cin >> x >> y >> v;x++,y++;a[x][y] += v;}n = 5001;for(int i = 1;i <= n;i++){for(int j = 1;j <= n;j++){f[i][j] = f[i-1][j] + f[i][j - 1]-f[i-1][j-1]+a[i][j];}}int ret = 0;m = min(m,n);//如果炸弹很大,就拿全部的for(int x2 = m;x2 <= n;x2++){for(int y2 = m;y2 <= n;y2++){int x1 = x2 - m + 1,y1 = y2 - m + 1;ret = max(ret,f[x2][y2] - f[x1 - 1][y2] - f[x2][y1 - 1] + f[x1 - 1][y1 - 1]);}}cout << ret << endl;return 0;
}
http://www.dtcms.com/a/537303.html

相关文章:

  • 网站开发技术 北京国内网站建设排名
  • 南通网站建设兼职中国沈阳app在哪里下载
  • MinIo纯前端使用文件上传预览
  • 学习记录-package.json的scripts添加参数的方式有那些
  • 【前端】avue组件分页勾选
  • 个人网站主页设计模板台州建网站
  • 修改网站主目录的位置云闪付当前页面设计隐私
  • 计算机图形学:【Games101】学习笔记02——变换(二维与三维、模型、视图、投影)
  • 解码固相萃取仪:如何实现复杂样品前处理的高效与重现性
  • Easyx图形库应用(直接显存操作)
  • 网站翻书效果网站建设费用 会计分录
  • Langchain从零开始到应用落地案例[AI智能助手]【4】---优化ocr识别编写,实现按文件类型进行调用识别
  • 如何添加网站logo天津网站定制公司
  • 做网站需要规划哪些内容南宁网站seo大概多少钱
  • 第15天:网络基础与故障排除
  • confluence or 语雀 or sward,知识管理工具一文全方位对比
  • 易语言中函数参数“参考”的基本概念
  • 阿里巴巴国际站的前台网址是西安美食网页设计
  • 制作网站需要怎么做苏州注册公司流程和步骤
  • 云栖实录 | 驰骋在数据洪流上:Flink+Hologres驱动零跑科技实时计算的应用与实践
  • 基层建设是哪个网站的工作总结及工作计划
  • 网站开发学习网站ui设计怎么自学
  • 整站优化工具wordpress joonla安全
  • 在Linux下循环创建N个子进程的实现与解析
  • Spring AI Alibaba 基于JWT的鉴权登录系统实现详解
  • 软件测试(五)--自动化测试Selenium(一)
  • 网站项目开发网站菜单导航制作教程
  • 兰州最好的网站建设公司青岛网站优化排名
  • 某汽车公司4S店携手Acrel-5000建筑能耗管理系统,实现连锁门店能源精细化管理新突破
  • LeetCode 刷题【135. 分发糖果】