news 2026/7/11 5:29:57

P8772 [蓝桥杯 2022 省 A] 求和题解前缀和思路

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
P8772 [蓝桥杯 2022 省 A] 求和题解前缀和思路

题干

P8772 [蓝桥杯 2022 省 A] 求和

题目描述

给定 $n$ 个整数 $a_{1}, a_{2}, \cdots, a_{n}$, 求它们两两相乘再相加的和,即

$$ S=a_{1} \cdot a_{2}+a_{1} \cdot a_{3}+\cdots+a_{1} \cdot a_{n}+a_{2} \cdot a_{3}+\cdots+a_{n-2} \cdot a_{n-1}+a_{n-2} \cdot a_{n}+a_{n-1} \cdot a_{n} $$

输入格式

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

第二行包含 $n$ 个整数 $a_{1}$, $a_{2}$, $\cdots a_{n}$ 。

输出格式

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

输入输出样例 #1

输入 #1
4 1 3 6 9
输出 #1
117

说明/提示

对于 $30 \%$ 的数据, $1 \leq n \leq 1000,1 \leq a_{i} \leq 100$ 。

对于所有评测用例, $1 \leq n \leq 2\times10^5,1 \leq a_{i} \leq 1000$ 。

蓝桥杯 2022 省赛 A 组 C 题。

思路解析

我拿到这道题最先想到的思路是数学优化,将原式进行合并同类项,如下:

$$ 原式= a_1\times{(a_2+a_3+...+a_n)}+a_2\times{(a_3+a_4+...+a_n)}+...+a_{n-1}\times{a_n} $$

我们正常计算是需要 $O(n^2)$ 的复杂度,但数据样例中 $1<=n<=2e5$ ,所以 $1<=n^2<=4e10$ ,这明显是TLE,所以我们就要考虑优化。观察 $a_1$ 、 $a_2$ 、 $a_3$ 、$...$ 、 $a_{n-1}$ 的系数,可整理成通项公式 $(a_{i+1}+a_{i+2}+...+a_n)$ ,可以发现它们都是这个数组中连续的一段的和,所以我们就可以通过前缀和预处理从 $a_1$ 到 $a_i$ 的和($s_i$),这时从 $a_{i+1}$ 到 $a_n$ 的和就可以表示为 $s_n-s_{i}$ 。那么这道题就可以优化至 $O(n)$ 的复杂度了。

代码

#include <bits/stdc++.h> using namespace std; const int N=2e5+10; int n,a[N],s[N],ans; signed main() { cin>>n; for (int i=1;i<=n;i++) { cin>>a[i],s[i]=s[i-1]+a[i];//预处理计算前缀和 } for (int i=1;i<n;i++) { ans+=(s[n]-s[i])*a[i];//计算每一项的值并累加 } cout<<ans<<endl; return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/11 5:28:57

插件化开发:Android端的插件化与ArkUI-X的结合(131)

将 Android 端的插件化架构与 ArkUI-X 跨平台框架结合&#xff0c;是实现“一次开发&#xff0c;三端部署”&#xff08;HarmonyOS、Android、iOS&#xff09;以及复杂业务模块解耦的高级工程实践。在这种结合模式下&#xff0c;ArkUI-X 负责提供跨平台的 UI 渲染与业务逻辑&am…

作者头像 李华
网站建设 2026/7/11 5:28:26

MOSFET GS/G级电阻选型实战:3种应用场景下10K与100Ω阻值对比分析

MOSFET栅极电阻选型实战&#xff1a;3种应用场景下10K与100Ω阻值对比分析在电力电子设计中&#xff0c;MOSFET的栅极驱动电路设计往往被工程师视为"简单任务"&#xff0c;但实际调试中却频繁出现开关损耗大、EMI超标甚至器件损坏等问题。本文将从工程实践角度&#…

作者头像 李华
网站建设 2026/7/11 5:26:31

OpenClaw本地AI调度中枢:Node.js版本适配与API路由实战指南

1. 这不是“过时工具”&#xff0c;而是被误读的本地AI调度中枢“啥&#xff1f;OpenClaw都没人用了&#xff01;”——这句话在技术群、论坛和短视频评论区反复刷屏&#xff0c;几乎成了某种情绪化标签。但真相是&#xff1a;OpenClaw 从未“退出历史舞台”&#xff0c;它只是…

作者头像 李华
网站建设 2026/7/11 5:25:18

Unity URP全屏模糊插件:从Shader原理到工程实践

1. 项目概述&#xff1a;为什么我们需要一个URP专属的全屏模糊插件&#xff1f;在Unity项目开发的后期&#xff0c;尤其是涉及到UI界面、过场动画、技能特效或者场景切换时&#xff0c;一个高质量的全屏模糊效果往往是提升视觉沉浸感和叙事张力的关键。它能把玩家的注意力从纷繁…

作者头像 李华
网站建设 2026/7/11 5:19:23

Coze扣子AI智能体开发实战:从零构建多Agent协同应用

这次我们来全面掌握Coze扣子AI智能体的实战应用。作为字节跳动推出的AI智能体开发平台&#xff0c;Coze让开发者无需深厚的技术背景也能快速构建功能丰富的AI应用。无论你是想搭建自动化的内容生成工具&#xff0c;还是开发复杂的多智能体协作系统&#xff0c;Coze都提供了完整…

作者头像 李华
网站建设 2026/7/11 5:18:57

QP/C++ 7.3.4构建失败:.pack文件缺失的深度解析与解决方案

1. 项目概述&#xff1a;当QP/C 7.3.4的“钥匙”不翼而飞如果你最近在升级或初次尝试QuantumLeaps的QP/C框架到最新的7.3.4版本&#xff0c;很可能一脚踩进了这个坑&#xff1a;下载了官方发布包&#xff0c;满心欢喜地准备构建你的第一个状态机应用&#xff0c;结果构建系统&a…

作者头像 李华