首页 > 其他分享 >【寒假每日一题】AcWing 4644. 求和(补)

【寒假每日一题】AcWing 4644. 求和(补)

时间:2023-06-19 18:33:32浏览次数:45  
标签:题目 int 复杂度 long a1 a2 寒假 4644 AcWing


目录

一、题目

1、原题链接

2、题目描述

二、解题报告

1、思路分析

2、时间复杂度

3、代码详解 


一、题目

1、原题链接

4644. 求和 - AcWing题库

2、题目描述

给定 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,表示所求的和。

请使用合适的数据类型进行运算。

数据范围

对于 30% 的数据,1≤n≤1000,1≤ai≤100。
对于所有评测用例,1≤n≤200000,1≤ai≤1000。

输入样例:



4 1 3 6 9【寒假每日一题】AcWing 4644. 求和(补)_时间复杂度



输出样例:



117【寒假每日一题】AcWing 4644. 求和(补)_时间复杂度_02


二、解题报告

1、思路分析

1)直接枚举,暴力求解时间复杂度为O(n^2),最坏情况要循环10^10左右,所以必定超时,无法暴力。

2)通过对式子简单分析可知,总和为第i项(i=1,2,3,....,n-1)乘(前n项前缀和-前i项前缀和),然后再求和,就可得到总和。

3)优化后的算法的时间复杂度为O(n)。

4)利用上述推导直接模拟即可。

其他思路:

思路来源:y总,今年有瓜分1万AC币的活动吗?每日一题_哔哩哔哩_bilibili

y总yyds

利用公式 ((a1+a2+...+an)^2-(a1^2+a2^2+...+an^2))/2 直接求解

2、时间复杂度

时间复杂度O(n)

3、代码详解 

#include <iostream>
using namespace std;
long long a[200010];
long long s[200010];
int main()
{   long long n;
    cin>>n;
    for(int i=0;i<n;i++){
    	cin>>a[i];
	}
	long long sum=0;
	s[0]=a[0];
	for(int i=1;i<n;i++){
		s[i]=s[i-1]+a[i];
	}
	for(int i=0;i<n;i++){
		sum+=a[i]*(s[n-1]-s[i]);
	}
	cout<<sum;
	return 0;
}

【寒假每日一题】AcWing 4644. 求和(补)_ci_03

标签:题目,int,复杂度,long,a1,a2,寒假,4644,AcWing
From: https://blog.51cto.com/u_15720469/6516834

相关文章

  • 算法刷题记录:AcWing 4908. 饥饿的牛
    目录题目链接:题目分析:时间复杂度SF代码AC代码:题目链接:https://www.acwing.com/problem/content/description/4911/题目分析:数据范围最大\(10^{14}\),所以如果采用枚举一定会TLE,因为只有\(10^5\)天会运来新的草,所以我们可以只考虑运草的天。假设当前到\(d_2\)天之前剩余干......
  • 【寒假每日一题】AcWing 3443. 学分绩点(补)
    目录一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解 一、题目1、原题链接3443.学分绩点-AcWing题库2、题目描述北京大学对本科生的成绩施行平均学分绩点制(GPA)。既将学生的实际考分根据不同的学科的不同学分按一定的公式进行计算。公式如下:实......
  • 【寒假每日一题】AcWing 3400. 统计次数(补)
     目录一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解 一、题目1、原题链接3400.统计次数-AcWing题库2、题目描述给定两个正整数 n 和 k,求从 1 到 n 这 n 个正整数的十进制表示中 k 出现的次数。输入格式共一行,包含两个整数 n ......
  • Acwing 4440 照相
    Acwing4440照相原题指路因为序列长为偶数,考虑将牛进行两两分组为什么要将其进行两两分组:因为题目按偶数前缀进行反转,每一组中的牛总是相邻的,不会被拆散。两两分组后会有四种情况:GGHHGHHG我们再观察可得:每次反转,就是将每组内的两头牛进行互换如:而GGHH反转并......
  • AcWing——凑数(二进制中1的个数)
    1、题目初始时,n=0。每一轮操作都要依次完成两个步骤:第一步,任选一个非负整数a,将n增加a,这一步所需付出的代价为a。第二步,将n乘以2,这一步无需付出任何代价。你可以不断重复上述操作。给定一个整数x,你的任务是使n在某一步操作后(不一定是某一轮结束后)恰好等于x且付出的总代......
  • 【蓝桥杯集训·周赛】AcWing 第96场周赛
    第一题AcWing4876.完美数一、题目1、原题链接4876.完美数2、题目描述如果一个正整数能够被2520整除,则称该数为完美数。给定一个正整数n,请你计算[1,n]范围内有多少个完美数。输入格式一个整数n。输出格式一个整数,表示[1,n]范围内完美数的个数。数据范围前3个测试点满......
  • 【蓝桥杯集训·周赛】AcWing 第 95 场周赛
    第一题AcWing4873.简单计算一、题目1、原题链接4873.简单计算2、题目描述给定四个整数x1,y1,x2,y2,请你计算max(|x1−x2|,|y1−y2|)。输入格式第一行包含两个整数x1,y1。第二行包含两个整数x2,y2。输出格式一个整数,表示max(|x1−x2|,|y1−y2|)的值。数据范围前4个测试点......
  • AcWing——砝码称重
    4942.砝码称重-AcWing题库1、题目给定一个天平和101个砝码。101个砝码的重量依次为n⁰,n¹,n²,…,n¹⁰⁰克,其中n是一个不小于2的整数。请你判断,我们能否利用给定天平和砝码对重量为m克的物品进行称重。注意,天平的两端都可以放入砝码。具体来说,你的任务是判断是否可......
  • 【acwing】Trie字符串统计
    Trie树学习感受相比于之前学习的kmp匹配算法,Trie树的实现还是非常好理解的。(kmp算法太难了orz)从直观的模拟过程来看,trie树就像一颗树一样,从上(根节点)到下(叶节点)有序串联起来组成一个字符串。每一个额外标记结束的位置表示字符串的结束,通过计算标记数即可指导一共有多少该字符串......
  • 【每日一题】AcWing 1904. 奶牛慢跑
    题目奶牛们又出去锻炼蹄子去了!有N头奶牛在无限长的单行道上慢跑。每头奶牛在跑道上开始奔跑的位置互不相同,一些奶牛的奔跑速度可能相同,也可能不同。由于跑道是单行道,十分狭窄,奶牛们无法相互超越。当一头速度很快的牛追上另一头牛时,她必须减速至与另一头牛速度相同以免发生碰撞,并成......