蓝桥杯(3)—————— 求和(前缀和)
今天遇到个很有意思的题目,学了前缀和算法
暴力解法奉上
#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)—————— 求和(前缀和)相关推荐
- Java实现第九届蓝桥杯缩位求和
缩位求和 题目描述 在电子计算机普及以前,人们经常用一个粗略的方法来验算四则运算是否正确. 比如:248 * 15 = 3720 把乘数和被乘数分别逐位求和,如果是多位数再逐位求和,直到是1位数,得 ...
- 蓝桥杯合数求和题解C++
[题目描述] 合数指自然数中除了能被1和它本身整除外,还能被其他数(0除外)整除的数.最小的合数是4. 如:合数4既可以被1和4整除,还能被2整除. 给定一个正整数N,计算出4到N之间所有合数的和. ...
- 阶乘末尾蓝桥杯java_Java实现第九届蓝桥杯阶乘位数
阶乘位数 题目描述 小明维护着一个程序员论坛.现在他收集了一份"点赞"日志,日志共有N行.其中每一行的格式是: ts id 表示在ts时刻编号id的帖子收到一个"赞&qu ...
- 【蓝桥杯】2019年第十届蓝桥杯省赛B组试题J — 灵能传输(前缀和,猜想结论)难度⭐⭐⭐⭐
整理的算法模板合集: ACM模板 蓝桥杯的题还是有难题的.这道题的可行性证明比较麻烦,但是代码比较简单. 学到了新的序列操作.前缀和的应用,前缀和还是学的不够扎实,晚上再复习一遍. #include& ...
- 蓝桥杯:入门训练 序列求和
蓝桥杯:入门训练 序列求和 问题描述 求1+2+3+...+n的值. 输入格式 输入包括一个整数n. 输出格式 输出一行,包括一个整数,表示1+2+3+...+n的值. 样例输入 4 样例输出 10 ...
- C++ 字符串流stringstream(附蓝桥杯2018年第九届真题缩位求和题解)
一.stringstream介绍 stringstream是 C++ 提供的一个字符串流(stream),,必须包含其头文件: #include <sstream> < sstrea ...
- 蓝桥杯 入门训练 序列求和
[蓝桥杯入门训练](BEGIN-2 序列求和) 问题描述 求1+2+3+-+n的值. 输入格式 输入包括一个整数n. 输出格式 输出一行,包括一个整数,表示1+2+3+-+n的值. 样例输入 4 样例 ...
- [蓝桥杯][2018年第九届真题]小朋友崇拜圈、耐摔指数、堆的计数、缩位求和、约瑟夫环
个人题解链接,蓝桥杯历届试题,正在更新中~ 文章目录 个人题解链接,蓝桥杯历届试题,正在更新中~ 小朋友崇拜圈 耐摔指数 堆的计数 缩位求和 约瑟夫环 小朋友崇拜圈 题目描述 班里N个小朋友,每个人都 ...
- [蓝桥杯 2018 国 B] 搭积木 (区间dp + 二维前缀和优化)
原题链接(洛谷) 题目描述 小明对搭积木非常感兴趣.他的积木都是同样大小的正立方体. 在搭积木时,小明选取 m m m 块积木作为地基,将他们在桌子上一字排开,中间不留空隙,并称其为第 0 0 0 层 ...
- 蓝桥杯第十一届真题:八次求和
点击查看:蓝桥杯历年真题 题解目录 八次求和 第一种解法得至少得60%的分 代码1 的100条测试 1至1000000,每隔10000取一个测试用例,共用时25秒 package java_2020_ ...
最新文章
- 都是套路:盘点 Java 面试中链表的几大解题模板方法!
- Karto的前端实现与解读
- 一款NPN三极管测量: BC547C
- Xamarin iOS教程之添加和定制视图
- 二叉树的序列化和反序列化
- 容灾与备份究竟有什么区别?
- 使用Spring提供Quartz来实现定时任务
- 44. xargs命令
- mysql ha 安装 配置文件_Linux下环境安装配置Rose HA全攻略(图)
- android动态壁纸提取,[图]大神已提取出一加8T的动态壁纸:Android 8.0+设备均可使用...
- python __call__或者说func()()的理解
- 设置 ASP.NET 存储当前应用程序的临时文件(生成的源、编译了的程序集等)的目录的物理路径。...
- java 数组以逗号分隔_在java中使用逗号分隔符拆分字符串数组
- 淘宝店的图片哪里来的
- Vue音乐项目笔记(三)
- 基于中颖SH79F168单片机的航模无刷电调方案
- HDMI中的视频时序分析
- php 字符串 strpos,PHP字符串处理函数:strpos() -- 内置函数
- 【Java基础】Java开发环境搭建并编写第一个入门程序HelloWorld
- 淘宝手机端详情页的设置