T1 方差

根据题目要求将式子先写出来
注意下面式子中的 $n$ 全部都是 $n-1$
$$
\begin{aligned}
ans&=n^2\times \frac{1}{n}\times \sum_{i=1}^{n}\left(b_i-\overline{b}\right)^2
\\&=n\times \sum_{i=1}^{n}\left({b_i}^2-2b_i\overline{b}+{\overline{b}}^2\right)
\\&=n\times \left(\sum_{i=1}^{n}{b_i}^2-2\overline{b}\times \sum_{i=1}^{n}b_i+n\times \overline{b}\right)
\\&=n\times \sum_{i=1}^{n}{b_i}^2-n\times 2\overline{b}\times \sum_{i=1}^{n}b_i+n\times n\times \overline{b}
\\&=n\times \sum_{i=1}^{n}{b_i}^2-2\times \left(\sum_{i=1}^{n}b_i\right)^2+n\times \sum_{i=1}^{n}b_i
\end{aligned}
$$
上面最后一步化出来的式子就是最简的式子。
我们可以通过一些预处理将其 $\text{O}(1)$ 求出来。这样总的时间复杂度是 $\text{O}(n)$ 的,还是很优秀的复杂度。

附上代码

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
const int maxn = 1e5+;
int n;
long long a[maxn], sum, POW, ans;
int main() {
scanf("%d", &n);
for(int i=; i<=n; i++)
scanf("%lld", &a[i]), sum += a[i], POW += a[i] * a[i];
for(int i=; i<=n; i++) {
long long tmp = sum, ppp = POW;
tmp -= a[i];
ppp -= a[i]*a[i];
ans = ppp*(n-) - (*tmp*tmp) + (tmp*tmp);
printf("%lld", ans);
if(i != n) printf(" ");
else printf("\n");
}
}

牛客网提高组第二场---solution的更多相关文章

  1. 18/9/16牛客网提高组Day2

    牛客网提高组Day2 T1 方差 第一眼看就知道要打暴力啊,然而并没有想到去化简式子... 可能因为昨晚没睡好,今天上午困死 导致暴力打了一个半小时,还不对... #include <algor ...

  2. 18/9/9牛客网提高组Day1

    牛客网提高组Day1 T1 中位数 这好像是主席树??听说过,不会啊... 最后只打了个暴力,可能是n2logn? 只过了前30%  qwq #include<algorithm> #in ...

  3. 牛客网 提高组第8周 T1 染色

    染色 链接: https://ac.nowcoder.com/acm/contest/176/A 来源:牛客网 题目描述 \(\tt{fizzydavid}\)和\(\tt{leo}\)有\(n\)个 ...

  4. 牛客网 提高组第8周 T2 推箱子 解题报告

    推箱子 链接: https://ac.nowcoder.com/acm/contest/176/B 来源:牛客网 题目描述 在平面上有\(n\)个箱子,每个箱子都可以看成一个矩形,两条边都和坐标轴平行 ...

  5. nowcoder(牛客网)提高组模拟赛第一场 解题报告

    T1 中位数(二分) 这个题是一个二分(听说是上周atcoder beginner contest的D题???) 我们可以开一个数组b存a,sort然后二分b进行check(从后往前直接遍历check ...

  6. nowcoder(牛客网)提高组模拟赛第四场 解题报告

    T1 动态点分治 就是模拟..... 但是没有过!! 看了题解之后发现.... 坑点:有可能 \(x<=r\),但是

  7. 牛客网提高组模拟赛第七场 T3 洞穴(附bitset介绍)

    就是DP. 我们可以很简单的想到要枚举中间点,进行边数的转移. 但是因为边长数据范围很大,所以我们考虑log的倍增. 状态设计为\(dp[i][j][k]\),为从节点\(i\)走\(2^k\)步能否 ...

  8. 牛客网提高组模拟赛第七场 T2 随机生成树

    其实看懂题就很水啦qwq,就是求\(1-N\)的约数啦. 暴力求的话时间复杂度是\(O(NlogN)\)的,其实正解是枚举每个数的倍数......这样的时间复杂度是\(\frac{N}{1}+\fra ...

  9. 牛客网提高组模拟赛第五场 T1同余方程(异或)(位运算)

    区间不好做,但是我们可以转化成前缀来做.转化为前缀之后之后就是二维前缀和. 但是我还是不怎么会做.所以只能去看吉老师的题解 (确定写的那么简单真的是题解???). 我们要求模一个数余0,就等于找它的倍 ...

随机推荐

  1. mysql 数据库的名称不能以数字开头

    mysql  数据库的名称不能以数字开头

  2. mysql同步延迟导致的问题

    前几天又遇到一个mysql读写分离的坑, 在将数据写入master后,因为存在同步延迟,所以如果立马去从库查询刚刚插入的数据可能会出现查询不到数据的情况, 解决办法:强制从主库读取数据,将插入和查询放 ...

  3. 如何替换某文件中的所有的特定字符?---linux sed命令(文本编辑命令) (转载)

    转自:http://blog.csdn.net/year_9/article/details/20318407 sed是一个很好的文件处理工具,主要是以行为单位进行处理,可以将数据行进行替换.删除.新 ...

  4. P3171 [CQOI2015]网络吞吐量

    传送门 首先跑一遍最短路,如果一条边满足\(dis[v]=dis[u]+w[i]\),那么这条边就在最短路中,把它加进网络流的图里 然后点的流量限制的话拆点,把每个点拆成两个,中间连边来限制流量 最后 ...

  5. 洛谷P4206 [NOI2005]聪聪与可可(期望dp+最短路)

    传送门 首先,猫的走位太飘了……只能预处理…… 先对每一个点跑一遍dijkstra跑出最短路,然后再预处理出$nxt[i][j]$表示当猫在$i$老鼠在$j$时猫下一步会走到哪里 然后考虑dp,设$d ...

  6. AOP日志框架实现

    AOP日志框架实现 JDK动态代理实现日志框架 首先,在项目包com.ay.test 下创建业务接口类BusinessClassService,具体代码如下: BusinessC lassServic ...

  7. InputFilter在过滤空格时重复输入的问题

    正确做法:editText.setFilters(new InputFilter[] { new InputFilter() { @Override public CharSequence filte ...

  8. Toasts官方教程

    Toasts IN THIS DOCUMENT The Basics Positioning your Toast Creating a Custom Toast View 在其它线程中启动Toast ...

  9. Object流

  10. ASP.NET MVC+Bootstrap个人博客之praise.js点赞特效插件(二)

    1. 为啥要做这个点赞插件?    praise.js是一款小巧的jQuery点赞插件,使用简便,效果美观. 在做个人博客时遇到了文章点赞问题.联想到各大社交网络中的点赞特效:手势放大.红心放大等等, ...