2022蓝桥杯c组求和

题目名字 求和

题目链接

题意

输入的每个数都要两两相乘,然后再加起来,求最后总和;

思路

  1. 每个数乘这个数的前缀和即可

算法一:前缀和

实现步骤
  1. 先把前缀和写出来
  2. 再写for循环每个数都乘以自己的前缀和;
实现步骤
  1. 直接在for循环输入里面进行相乘相加的运算
代码
cpp 复制代码
 #include <iostream>
using namespace std;
const int N=1e6+10;
int n,a[N];
long long int sum=0,m=0;
int main()
{
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
        sum=sum+m*a[i];
        m=m+a[i];
    }
    cout<<sum<<endl;
    return 0;
}
时间复杂度

总结

  1. 在刚开始写的时候想的是用枚举的方法,两重for循环,但是只能对两个而且还超时了,所以一直写不出来,因为超时原因,所以不能直接暴力解决,可以进行一个小的运算;
  2. 不把这个题想的太死板,换个解题思路,直接就是这个数和这个数的前一项的前缀和直接相乘,就会清晰明了的多,但是要注意一下,实现后面的for循环i是等于n的,因为不能从第一个数字进行这个运算,所以掌握这种思维的灵活运用还是挺重要的,如果再次遇到这种会超时的题目不妨试试换个思路
  3. 当然还可以用在循环里输入的时候直接完成了相乘和相加的工作,还是要多练题,想法有了但是一直写不出来,或者各种小问题;
相关推荐
HUANGZHENXUAN12313 小时前
最大子矩阵和:从 O(n⁴) 到 O(n³) 的列压缩 + Kadane
c语言·前端
§ꦿCFོ༉16 小时前
嵌入式八股文—C语言入门学习(二)
c语言·学习·嵌入式·编程语言
David猪大卫1 天前
【Linux修炼】环境变量、进程地址空间
linux·c语言·经验分享·笔记·学习·ubuntu·centos
Zwawa1 天前
两根线怎么挂住一堆设备:I2C 协议原理
c语言·单片机·嵌入式
武子康1 天前
h3.c 的两个权重槽,怎样把内存压力换成 SSD 等待
c语言·人工智能·agent
青少儿编程课堂2 天前
蓝桥杯青少组省考(11/9报名截止·11/22开考)+电子学会图形化考级+信息素养大赛:校园极速跑酷闯关解析
蓝桥杯·scratch·图形化编程·信息素养大赛·电子学会考级
§ꦿCFོ༉2 天前
嵌入式八股—C语言入门学习(一)
c语言·编程语言·嵌入式八股文
沐晓时光2 天前
C语言入门,字符串和字符串函数知识讲解
c语言·开发语言
智者知已应修善业3 天前
【51单片机实现从下到上,从上到下,从中间到两边,两边到中间】2024-10-23
c语言·经验分享·笔记·单片机·嵌入式硬件·51单片机
布莱克6053 天前
C/C++ 中变量的声明与定义:区别、联系与常见误区
c语言·开发语言·c++·声明·定义