Nowcode 建设道路
时间:2020-04-25
本文章向大家介绍Nowcode 建设道路,主要包括Nowcode 建设道路使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前几天做了一个简单题
思路
通过读题我们很容易看出他就是让我们求这么一个东西:
\(\displaystyle\sum_{i = 1}^n \sum_{j = i + 1}^{n} (a_i - a_j)^2\)
我们把后边的完全平方公式展开就是:
\(\displaystyle\sum_{i = 1}^n \sum_{j = i + 1}^{n} a_i^2 -2a_ia_J + a_j^2\)
显然我们还可以把 \(a_i^2\)提出来
\(\displaystyle\sum_{i = 1}^n (n - i)a_i^2-2a_i\sum_{j = i + 1}^{n}a_J + \sum_{j = i + 1}^{n}a_j^2\)
显然后边的\(a_j\) 和\(a_j^2\)我们可以提前用前缀和处理
我们用sum[i]表示对a[i]数组的前缀和,用sum2表示对\(a[i]^2\)的前缀和
那么原来的式子就能化成:
\(\displaystyle\sum_{i = 1}^n (n - i)a_i^2-2a_i*(sum[n] - sum[i])+ (sum2[n]-sum2[i])\)
最后的时候注意取膜就行了
code
#include <set>
#include <map>
#include <cmath>
#include <queue>
#include <stack>
#include <cstdio>
#include <string>
#include <vector>
#include <cstring>
#include <cstdlib>
#include <iomanip>
#include <iostream>
#include <algorithm>
#define ll long long
#define N 500010
#define M 1010
using namespace std;
const int mod = 1000000007;
int n;
ll a[N], sum[N], sum2[N];
ll read() {
ll s = 0, f = 0; char ch = getchar();
while (!isdigit(ch)) f |= (ch == '-'), ch = getchar();
while (isdigit(ch)) s = s * 10 + (ch ^ 48), ch = getchar();
return f ? -s : s;
}
int main() {
n = read();
for (int i = 1; i <= n; i++) {
a[i] = read();
sum[i] = (sum[i - 1] + a[i]) % mod;
sum2[i] = (sum2[i - 1] + (a[i] * a[i]) % mod) % mod;
}
ll ans = 0;
for (int i = 1; i <= n; i++) {
ll x1 = ((n - i) * ((a[i] * a[i]) % mod)) % mod;
ll x2 = ((2 * a[i] % mod) * ((sum[n] - sum[i] + mod) % mod)) % mod;
ll x3 = (sum2[n] - sum2[i] + mod) % mod;
ll x = (x1 - x2 + x3 + mod) % mod;
ans = (ans + x) % mod;
}
cout << ans;
}
原文地址:https://www.cnblogs.com/zzz-hhh/p/12774262.html
- (八)高性能服务器架构设计总结1——以flamigo服务器代码为例
- (八)高性能服务器架构设计总结2——以flamigo服务器代码为例
- Scala集合练习题
- 机器学习(10)之趣味案例理解朴素贝叶斯
- Spart DataSet数据集
- (八)高性能服务器架构设计总结3——以flamigo服务器代码为例
- (八)高性能服务器架构设计总结4——以flamigo服务器代码为例
- SQL员工部门表综合查询60题
- 如何对Scala中集合(Collections)进行排序
- 小白教程——安装和使用PyCharm
- 如何在 Scala 中科学地操作 collection(一)集合类型与操作
- Redis 一二事(2) - 在spring中使用jedis 连接调试单机redis以及集群redis
- 用 Python 制作微信好友个性签名词云图
- 用 Python 查看微信好友位置信息
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法