今天遇到个很有意思的题目,学了前缀和算法

暴力解法奉上

#include <iostream>
using namespace std;
int main()
{long long s,i,sum=0,num[200000]={},j;cin>>s;for(i=1;i<=s;i++){cin>>num[i];}for(i=1;i<=s;i++){for(j=i+1;j<=s;j++){sum=sum+num[i]*num[j];}}cout<<sum;
}

很明显,时间复杂度是O(n*m),肯定会超时,下面就是前缀和算法奉上,剽的别人的文章,感觉不错,我就不再讲一次了

练习一道题目
输入一个长度为n的整数序列。
接下来再输入m个询问,每个询问输入一对l, r。
对于每个询问,输出原序列中从第l个数到第r个数的和。
输入格式
第一行包含两个整数n和m。
第二行包含n个整数,表示整数数列。
接下来m行,每行包含两个整数l和r,表示一个询问的区间范围。
输出格式
共m行,每行输出一个询问的结果。
数据范围
1≤l≤r≤n,
1≤n,m≤100000,
−1000≤数列中元素的值≤1000
输入样例:

5 3
2 1 3 6 4
1 2
1 3
2 4

1
    2
    3
    4
    5

输出样例:

3
6
10

1
    2
    3

代码:

#include <iostream>

using namespace std;

const int N = 100010;

int n, m;
int a[N], s[N];

int main()
{
    scanf("%d%d", &n, &m);
    for (int i = 1; i <= n; i ++ ) scanf("%d", &a[i]);

for (int i = 1; i <= n; i ++ ) s[i] = s[i - 1] + a[i]; // 前缀和的初始化

while (m -- )
    {
        int l, r;
        scanf("%d%d", &l, &r);
        printf("%d\n", s[r] - s[l - 1]); // 区间和的计算
    }

return 0;
}
————————————————
版权声明:本文为CSDN博主「林小鹿@」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45629285/article/details/111146240

下面就是上面这道题的前缀和解法

#include <iostream>
using namespace std;
int main()
{long long s,i,sum[200000]={},num[200000]={},j,sum2=0;cin>>s;for(i=1;i<=s;i++){cin>>num[i];}for(i=1;i<=s;i++){sum[i]=sum[i-1]+num[i];}for(i=1;i<=s;i++){sum2=sum2+num[i]*(sum[s]-sum[i]);}cout<<sum2;
}

蓝桥杯(3)—————— 求和(前缀和)相关推荐

  1. Java实现第九届蓝桥杯缩位求和

    缩位求和 题目描述 在电子计算机普及以前,人们经常用一个粗略的方法来验算四则运算是否正确. 比如:248 * 15 = 3720 把乘数和被乘数分别逐位求和,如果是多位数再逐位求和,直到是1位数,得 ...

  2. 蓝桥杯合数求和题解C++

    [题目描述] 合数指自然数中除了能被1和它本身整除外,还能被其他数(0除外)整除的数.最小的合数是4. 如:合数4既可以被1和4整除,还能被2整除. 给定一个正整数N,计算出4到N之间所有合数的和. ...

  3. 阶乘末尾蓝桥杯java_Java实现第九届蓝桥杯阶乘位数

    阶乘位数 题目描述 小明维护着一个程序员论坛.现在他收集了一份"点赞"日志,日志共有N行.其中每一行的格式是: ts id 表示在ts时刻编号id的帖子收到一个"赞&qu ...

  4. 【蓝桥杯】2019年第十届蓝桥杯省赛B组试题J — 灵能传输(前缀和,猜想结论)难度⭐⭐⭐⭐

    整理的算法模板合集: ACM模板 蓝桥杯的题还是有难题的.这道题的可行性证明比较麻烦,但是代码比较简单. 学到了新的序列操作.前缀和的应用,前缀和还是学的不够扎实,晚上再复习一遍. #include& ...

  5. 蓝桥杯:入门训练 序列求和

    蓝桥杯:入门训练 序列求和 问题描述 求1+2+3+...+n的值. 输入格式 输入包括一个整数n. 输出格式 输出一行,包括一个整数,表示1+2+3+...+n的值. 样例输入 4 样例输出 10 ...

  6. C++ 字符串流stringstream(附蓝桥杯2018年第九届真题缩位求和题解)

    一.stringstream介绍 stringstream是 C++ 提供的一个字符串流(stream),,必须包含其头文件: #include <sstream> < sstrea ...

  7. 蓝桥杯 入门训练 序列求和

    [蓝桥杯入门训练](BEGIN-2 序列求和) 问题描述 求1+2+3+-+n的值. 输入格式 输入包括一个整数n. 输出格式 输出一行,包括一个整数,表示1+2+3+-+n的值. 样例输入 4 样例 ...

  8. [蓝桥杯][2018年第九届真题]小朋友崇拜圈、耐摔指数、堆的计数、缩位求和、约瑟夫环

    个人题解链接,蓝桥杯历届试题,正在更新中~ 文章目录 个人题解链接,蓝桥杯历届试题,正在更新中~ 小朋友崇拜圈 耐摔指数 堆的计数 缩位求和 约瑟夫环 小朋友崇拜圈 题目描述 班里N个小朋友,每个人都 ...

  9. [蓝桥杯 2018 国 B] 搭积木 (区间dp + 二维前缀和优化)

    原题链接(洛谷) 题目描述 小明对搭积木非常感兴趣.他的积木都是同样大小的正立方体. 在搭积木时,小明选取 m m m 块积木作为地基,将他们在桌子上一字排开,中间不留空隙,并称其为第 0 0 0 层 ...

  10. 蓝桥杯第十一届真题:八次求和

    点击查看:蓝桥杯历年真题 题解目录 八次求和 第一种解法得至少得60%的分 代码1 的100条测试 1至1000000,每隔10000取一个测试用例,共用时25秒 package java_2020_ ...

最新文章

  1. 都是套路:盘点 Java 面试中链表的几大解题模板方法!
  2. Karto的前端实现与解读
  3. 一款NPN三极管测量: BC547C
  4. Xamarin iOS教程之添加和定制视图
  5. 二叉树的序列化和反序列化
  6. 容灾与备份究竟有什么区别?
  7. 使用Spring提供Quartz来实现定时任务
  8. 44. xargs命令
  9. mysql ha 安装 配置文件_Linux下环境安装配置Rose HA全攻略(图)
  10. android动态壁纸提取,[图]大神已提取出一加8T的动态壁纸:Android 8.0+设备均可使用...
  11. python __call__或者说func()()的理解
  12. 设置 ASP.NET 存储当前应用程序的临时文件(生成的源、编译了的程序集等)的目录的物理路径。...
  13. java 数组以逗号分隔_在java中使用逗号分隔符拆分字符串数组
  14. 淘宝店的图片哪里来的
  15. Vue音乐项目笔记(三)
  16. 基于中颖SH79F168单片机的航模无刷电调方案
  17. HDMI中的视频时序分析
  18. php 字符串 strpos,PHP字符串处理函数:strpos() -- 内置函数
  19. 【Java基础】Java开发环境搭建并编写第一个入门程序HelloWorld
  20. 淘宝手机端详情页的设置

热门文章

  1. 每日一题:DNA序列
  2. 好用的插件介绍-Clear Cache Chrome插件
  3. 6.3_精灵对象的行为
  4. Java在Controller生成Excel供前端直接下载
  5. 手把手教你webpack3(15)插件之雪碧图插件(WEBPACK-SPRITESMITH配置简述)
  6. zabbix mysql 监控
  7. 个人项目作业-论文查重
  8. 50etf期权对冲策略怎么玩?
  9. 历史性的时刻!OpenTiny 跨端、跨框架组件库正式升级 TypeScript,10 万行代码重获新生!
  10. 华为HCIP RS题库221 171-180题