外传:魔王打工记
Posted Q1311605467
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了外传:魔王打工记相关的知识,希望对你有一定的参考价值。
外传:魔王打工记(一)
话说Home_W大魔王手下有四大天王: 首席战神——赛文斯,SoftWork首席科学家——布莱克,首席军师——金金金,首席狙击手——超无聊,首席苦力——小明。
然而,这些部下个个都是饭桶,把Home_W都快吃穷。虽然Home_W嘴上说:打工是不可能打工的,这辈子不可能打工的。烧杀抢又不会做,就只有当正义的魔王这种东西,才能维持的了生活的体面,进了魔王堡感觉像回家一样,在魔王堡的感觉比家里感觉好多了!里面个个都是人才,说话又好听,我超喜欢里面的!”但实际上,Home_W在背地里伪造了各种身份,偷偷地做一些兼职以维持生计。
现在Home_W刚升入国家统计局工作,统计局里刚给他分配报酬1e RMB的一项工作:
给出N个整数a1,a2,a3,……,aN,问:对于任意的L,R。求序列aL,aL+1……aR的方差乘(R-L+1)2
其中方差的公式如下:
Home_W在接到工作后熟练敲起了代码,只见他摸上键盘的一瞬间天黑地暗,大地都在颤抖,星辰都在闪烁,不到一分钟就算完了。办公室里的无不起立鼓掌,领导也对其刮目相看,额外奖励了他价值1e9+7 RMB的破坏公物罚单一张。
单组数据
开头是一个整数N,q代表N个数字,q次询问.N,q<=100,000
接下来有n个数a1,a2,a3,……an ,(0<=ai<=10000)
再接下来q行,每行包含两个整数L,R. (1<=L<=R<=N)
对于每个查询输出一个整数,代表方差乘(R-L+1)2
10 10 6 1 3 0 4 5 0 7 7 4 8 10 2 4 1 3 5 8 7 9 4 10 1 9 4 6 1 6 9 10
18 14 38 104 98 356 576 42 161 9
思路,这道题按照常规的数学方法做会超时,数据较多,因此考虑将公式进行化简,在进行个预处理就好,可以自行推倒;
n*∑(x[i]^2)-(∑x[i])^2求(1-n)
这道题从l-r,n=r-l+1;∑(x[i]^2)就对应∑(x[r]^2)-∑(x[l-1]^2)
(∑x[i])^2对应(∑x[r]-∑x[l-1])^2
1 for(int i=1; i<=n; i++) 2 { 3 scanf("%d",&a[i]); 4 sum[i]=sum[i-1]+a[i]; 5 sum2[i]=sum2[i-1]+a[i]*a[i]; 6 } 7 8 /////// 9 10 scanf("%d%d",&l,&r); 11 long long x=(r-l+1)*(sum2[r]-sum2[l-1])-(sum[r]-sum[l-1])*(sum[r]-sum[l-1]);
以上是关于外传:魔王打工记的主要内容,如果未能解决你的问题,请参考以下文章