大纲

1.计算前缀和
2.计算字段和
3.后缀和
4.前缀积
5.后缀积
6.例题

1.计算前缀和
基础问题:
思路1:
枚举

cin ();
for (int i = 1; i <= q; i++)
{cin >> x;int sum = 0;for (int j = 1; j <= x; j++){sum += a[j];}cout << sum << endl;
}

时间复杂度:O(QN) 极端情况时间复杂度会超!
思路2:
前缀和

可以发现:

以x的角度再来看看我们的发现有什么作用:

所以我们就可以用递推 + 查表 来做这道题:

sum[0] = 0;for (int i = 1; i <= n; i++) sum[i] = sum[i - 1] + A[i];for (int i = 1; i <= q; i++){cin >> x;cout << sum[x] << endl;}

2.计算字段和
基础问题:

思路1:
枚举

cin ();for (int i = 1; i <= q; i++){cin >> l >> r;int sum = 0;for (int j = l; j <= r; j++){sum += a[j];}cout << sum << endl;}


同样以x的视角来看:
最后可以得出式子:
sum [ l, r ] = sum [ r ] - sum [ l - 1 ]
这样可以通过前缀和的思路来写这道题:

sum[0] = 0;
for (int i = 1; i <= n; i++) sum[i] = sum[i - 1] + A[i];
for (int i = 1; i <= q; i++)
{cin >> l >> r;cout << sum[r] - sum[l - 1] << endl;
}

时间复杂度:O(n)
3.计算后缀和
其实后缀和就只是把前缀和反过来:
时间复杂度:O(n)。
4.前缀积
其实你只要懂了前缀和,你就很容易懂其他的,前缀积其实就是将计算前缀和的’+‘,换成’ * ’

时间复杂度:O(n)
5.后缀积
同样也是将前缀积反过来:

时间复杂度:O(n)
6.例题

互质序列
题目描述你知道什么是“互质序列”吗?就是一个由n个正整数组成的序列,它们的GCD(最大公约数)等于1.这样的互质序列很容易找到。但是我们可以尝试通过删除一个整数来最大化这些整数的GCD。现在给出一个序列,请最大化其元素的GCD。
输入格式第一行,一个整数T,表示测试数据的组数。1≤T≤10对于每组测试数据,第一行,一个整数n,表示序列中正整数的数量,3≤n≤100000接下来一行,包含n个正整数a1,a2...an,表示序列中的元素,1≤ai≤10^9
输出格式对于每组数据输出一行,一个整数,表示GCD的最大值
输入输出样列
输入样例1:3
3
1 1 1
5
2 2 2 3 2
4
1 2 4 8输出样例1:1
2
2


#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <string>
#include <cstring>
#include <vector>
#include <stack>
#include <list>
#include <limits.h>
using namespace std;
int n,a[100010],l[100010],r[100010];
int t;
int gcd(int x,int y){return y==0?x:gcd(y,x%y);
}
int main(){cin>>t;while(t--){cin>>n;int ans=0;memset(l,0,sizeof(l));memset(r,0,sizeof(r));for(int i=1;i<=n;i++){cin>>a[i];l[i]=gcd(l[i-1],a[i]);}for(int i=n;i>=1;i--) r[i]=gcd(r[i+1],a[i]);for(int i=1;i<=n;i++){ans=max(ans,gcd(l[i-1],r[i+1]));}cout<<ans<<endl;}return 0;
}

【c++入门(2)】前缀和相关推荐

  1. ⭐算法入门⭐《前缀和》中等02 —— LeetCode 974. 和可被 K 整除的子数组

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 1)初始化前缀和 2)哈希表统计 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题 ...

  2. 【算法】动态规划+“背包九讲”原理超详细讲解+常见dp问题(9种)总结

    目录 一.动态规划(DP) 二.背包九讲 (1)完全背包 P1616 疯狂的采药(完全背包) (2)01背包 滚动数组 一维数组 P1048 采药(01背包) 01背包表格图示 (3)多重背包 整数拆 ...

  3. 提高篇 第四部分 数据结构 第1章 树状树组

    树状数组 树状数组_百度百科 树状数组 - Fast and Furious - C++博客 树状数组彻底入门,算法小白都看得懂的超详细解析 树状数组彻底入门,算法小白都看得懂的超详细解析_Small ...

  4. 算法入门篇七 前缀树

    牛客网 左程云老师的算法入门课 找二叉树的节点的后继节点 原则 如果节点有右子树,那么后继节点就是右子树的最左边的第一个节点 如果节点没有右子树,如果节点是父节点的右孩子,就继续往上找,直到找到一个父 ...

  5. ACM入门之【前缀和】

    前缀和在ACM中算是一个简单易学,且十分重要的一个算法. 前缀和的种类: 一维前缀和 二维前缀和 高维前缀和(比较少见) 树上前缀和 对于一维前缀和,它可以解决O(1)的时间复杂度来获取某一区间的和. ...

  6. 前缀和与差分的使用(新手快速入门)

    前缀和 前缀和定义:s[0]=0; s[i]=s[i-1]+a[i]; 其中s[i]数组为a[i]数组的前缀和: 有了前缀和后,给定一个区间 [l,r] 的和就可以表示为: sum=s[r] -s[l ...

  7. 来看看小夏の算法入门——前缀和差分

    目录 一.前言 二.前缀和 2.1.求和 2.2.分析: 2.3.什么是前缀和数组? 2.4.怎么求前缀和数组? 2.5.作用 2.6.题解: 2.7.二维前缀和 2.8.分析: 2.9.题解: 三. ...

  8. 《算法零基础100讲》(第57讲) 前缀和(一) 线性前缀和入门

    文章目录 零.写在前面 一.概念定义 1.部分和 2.朴素做法 3.前缀和 4.前缀和的边界值 5.边界处理 6.再看部分和 二.题目描述 1.定义 2.求解 三.算法详解 四.源码剖析 五.推荐专栏 ...

  9. 洛谷 P5638 光骓者的荣耀 Java实现 前缀和入门

    题目描述 题目描述 小 K 打下的江山一共有 n 个城市,城市 i 和城市 i+1 有一条双向高速公路连接,走这条路要耗费时间 a_i 小 K 为了关心人民生活,决定定期进行走访.他每一次会从 1 号 ...

最新文章

  1. Beta冲刺 (7/7)
  2. Vue 结合Element UI 实现导航的 router 属性 expected boolean,got string
  3. 【verilog语法】关于testbench与被测module的输入输出数据类型定义:reg/wire原因
  4. 基于金融知识图谱的会计欺诈风险识别方法
  5. javascript编写_如何在JavaScript中使用解构来编写更简洁,功能更强大的代码
  6. 强化学习研究什么?用白话讲就是……
  7. c++ 编译代码时Link失败,无法关闭目标文件
  8. oracle odi 目标数据存储: 临时目标数据存储未与连接关联,ODI知识模块--IKM Oracle Incremental Update...
  9. qq发送文件时显示服务器拒绝,qq给对方发文件为什么服务器拒绝接收 - 卡饭网...
  10. 1u服务器电源制作,1U服务器电源也可以做机箱电源
  11. Scene Graph Generation by Iterative Message Passing解读
  12. K3老单开发-销售订单计算比例(实际价格反推)
  13. Macbook双系统 10.11及Ubuntu
  14. 情侣的网站代码java_一个创意满满的情侣网站
  15. NumPy的矩阵表示方法
  16. 数字集成电路设计的流程2
  17. 【操作系统之进程了解】
  18. java中appletviewer是什么意思_自动生成供AppletViewer运行Java Applet的HTML文件
  19. 使用 EMQ X Neuron 构建基于 Modbus 的 IIoT 应用
  20. 企业选择私有化部署的IM即时通讯软件,全力保护信息安全

热门文章

  1. 小米12S Pro和小米12Pro天玑版区别 两者配置对比
  2. python串口通讯
  3. 电商项目测试实战(三)测试流程之制定测试计划、方案以及测试设计
  4. 神经网络中的常用算法-BP算法
  5. 用JS获取当前的时间
  6. js 获取当前日期(年月日时分秒周)
  7. gb酱油和gbt酱油哪个好_不会选酱油?看看国家标准,这个指标最重要!
  8. ARMini震醒Wakefield展会
  9. linux 文件夹拷贝并覆盖
  10. 传输安全里从LDAP到LDAPS的安全加固