P8772 [蓝桥杯 2022 省 A] 求和

复制代码
#include<bits/stdc++.h>
using namespace std;
const int N=200005;
int  a[N];
int num[N];
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		
		cin>>a[i];
		if(i==n)
			num[i]=a[i];
	}

	for(int j=n-1;j>=2;j--)
	{	
		num[j]=num[j+1]+a[j];
		
	}
	
	
	long long sum=0;
	for(int i=1;i<n;i++){
		sum+=a[i]*num[i+1];
	}
	cout<<sum;
	return 0;
	
	
}

简单ac这题两重循环的话会爆,不够时间,用前缀和可以优化到n的一次方,题目中求和的各个项可以提出a1到an这n个公共项,那么剩下的就是a2到an,至an的前缀和,先求出a2到an的前缀和,后面的就是n次运算了,不过存储前缀和的数组要用long以上的整型不然会超出空间,数据每个最大是1000,a2到an个数最多是200000,最大的话应该是200000000去到了10的八次方,看到大的数据值,最好就用大一点的整形,空间一般是够的。

相关推荐
xiaoye-duck12 分钟前
《C++ 工具库实战》高性能日志 spdlog:从基础使用到工程化封装
c++·第三方库
重生之小比特20 分钟前
【算法拾光】前缀和|连续的子数组和 + 和相同的二元子数组
算法·leetcode·哈希算法
努力努力再努力wz26 分钟前
【Lua入门系列】从 C++ 迭代器到 Lua 迭代器:一文深入理解 Lua 有状态以及无状态迭代器与泛型for、闭包、ipairs、pairs 和 next
开发语言·c++·lua
一去不复返的通信er31 分钟前
力扣15:盛最多水的容器
算法·leetcode
努力实干34 分钟前
第二阶段 · 第 7 课:C++ 多线程与线程安全
开发语言·c++·安全
Navigator_Z34 分钟前
LeetCode //C - 1309. Decrypt String from Alphabet to Integer Mapping
c语言·算法·leetcode
潇湘秦37 分钟前
SQL Server 2016+ 整数类型元数据扩宽(秒级变更)完整说明
数据库·算法
小白起 v1 小时前
02-数组与链表
数据结构·链表
Figo_Cheung2 小时前
Figo基于结构空间算法假设(SSAH)的生成式大模型优化范式与工程实现边界研究——提出适应AGI架构演化的自适应拓扑感知表征机制
算法·架构·agi
小菜要扣篮2 小时前
Ubuntu 下使用 vscode 打开 C++ 项目后,无法通过 F12 定位到定义问题解决
c++·vscode·ubuntu