P8772 [蓝桥杯 2022 省 A] 求和

P8772 [蓝桥杯 2022 省 A] 求和 - 洛谷

题目描述

给定 n 个整数 a1​,a2​,...,an​,求它们两两相乘再相加的和,即

S=a1​⋅a2​+a1​⋅a3​+⋯+a1​⋅an​+a2​⋅a3​+⋯+an−2​⋅an−1​+an−2​⋅an​+an−1​⋅an​

输入格式

输入的第一行包含一个整数 n。

第二行包含 n 个整数 a1​,a2​,...,an​。

输出格式

输出一个整数 S,表示所求的和。请使用合适的数据类型进行运算。

输入输出样例

输入 #1

markdown

复制代码
4
1 3 6 9

输出 #1

markdown

复制代码
117

说明/提示

  • 对于 30% 的数据,1≤n≤1000,1≤ai≤1000。
  • 对于所有评测用例,1≤n≤2×105,1≤ai≤1000。

蓝桥杯 2022 省赛 A 组 C 题

思路:

前缀和模拟即可,记得开longlong

代码如下:

复制代码
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
typedef long long ll;
const ll N = 2e5+10;
ll a[N],n,cnt,pre[N];
int main() 
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin >> n;
	for(ll i = 1 ; i <= n ; i++)
	{
		cin >> a[i];
		pre[i] = pre[i-1]+a[i];
	}
	ll sum = 0;
	for(ll i = 1 ; i <= n ; i++)
	{
		sum += a[i] * (pre[n] - pre[i]);
	}
	cout << sum;
	return 0;
}
相关推荐
_日拱一卒8 小时前
LeetCode:2两数相加
算法·leetcode·职场和发展
j_xxx404_10 小时前
C++算法:哈希表(简介|两数之和|判断是否互为字符重排)
数据结构·c++·算法·leetcode·蓝桥杯·力扣·散列表
洌冰14 小时前
某车厂面试记录
面试·职场和发展
穿条秋裤到处跑15 小时前
每日一道leetcode(2026.04.16):距离最小相等元素查询
算法·leetcode·职场和发展
算法即正义16 小时前
知识竞赛软件的数据存储与备份方案
职场和发展·学习方法
Mr_Xuhhh18 小时前
深入理解单链表的递归反转:从原理到实现
算法·leetcode·职场和发展
_深海凉_19 小时前
LeetCode热题100-每日温度
算法·leetcode·职场和发展
菜菜的顾清寒20 小时前
力扣hot100(17) 缺失的第一个正数
算法·leetcode·职场和发展
.NET修仙日记21 小时前
2026 .NET 面试八股文:高频题 + 答案 + 原理(进阶核心篇)
面试·职场和发展·c#·.net·.net core·微软技术·webapi