Jzoj5422 天才绅士少女助手克里斯蒂娜
2017-11-07 17:09
344 查看
居然是向量叉乘!考场上忘了怎么叉乘了。。。
考完后发现可以推一波式子
Σ(aj*bk-ak*bj)^2{1<=j<k<=n}=(Σak^2)*(Σbk^2)-(Σak*bk)^2 {1<=k<=n}
让后用BIT维护a的平方和,b的平方和和ab的和就好了
#pragma GCC optimize("O3") #pragma G++ optimize("O3") #include<stdio.h> #include<string.h> #include<algorithm> #define LL long long #define N 1000010 #define M 20170927 using namespace std; int n,m; LL x ,y ,sx ,sy ,sxy ; inline LL sqr(LL x){ return x*x%M; } inline void ad(LL& x,LL y){ x=(x+y)%M; } inline void add(LL* s,LL x,LL k){ for(;x<=n;x+=x&-x) ad(s[x],k); } inline LL sum(LL* s,LL x,LL S=0){ for(;x;x^=x&-x) ad(S,s[x]); return S; } int main(){ freopen("kurisu.in","r",stdin); freopen("kurisu.out","w",stdout); scanf("%d%d",&n,&m); for(int i=1;i<=n;++i){ scanf("%lld%lld",x+i,y+i); add(sx,i,sqr(x[i])); add(sy,i,sqr(y[i])); add(sxy,i,x[i]*y[i]); } for(LL o,l,r;m--;){ scanf("%lld%lld%lld",&o,&l,&r); if(o==1){ scanf("%lld",&o); add(sx,l,sqr(r)-sqr(x[l])); add(sy,l,sqr(o)-sqr(y[l])); add(sxy,l,o*r-x[l]*y[l]); x[l]=r; y[l]=o; } else { LL s1=sum(sx,r)-sum(sx,l-1); LL s2=sum(sy,r)-sum(sy,l-1); LL s3=sum(sxy,r)-sum(sxy,l-1); printf("%lld\n",(M+(s1*s2%M-sqr(s3))%M)%M); } } }
相关文章推荐
- [JZOJ5422]【NOIP2017提高A组集训10.25】天才绅士少女助手克里斯蒂娜
- JZOJ 5422. 【NOIP2017提高A组集训10.25】天才绅士少女助手克里斯蒂娜
- JZOJ5422. 【NOIP2017提高A组集训10.25】天才绅士少女助手克里斯蒂娜
- 【NOIP2017提高A组集训10.25】天才绅士少女助手克里斯蒂娜(树状数组)
- 【NOIP2017提高A组集训10.25】天才绅士少女助手克里斯蒂娜
- [2017纪中10-25]天才绅士少女助手克里斯蒂娜 线段树
- 巴基斯坦16岁电脑天才少女的人生哲学
- JZOJ 4879 【NOIP2016提高A组集训第11场11.9】少女觉
- 汕头市队赛 SRM 07 D 天才麻将少女kpm
- JZOJ 4879. 【NOIP2016提高A组集训第11场11.9】少女觉
- 【JZOJ4879】少女觉
- 【SRM-07 D】天才麻将少女KPM
- [cogs2692]天才魔法少女琪露诺爱计数
- 插画风漫画来袭 天才美术少女的清甜恋爱!
- 天才少女到美女CEO(图)
- VA助手靓丽使用指南
- 今天是法国天才数学家Evariste Galois冥诞!
- jzoj P1507【普及模拟】数列
- Ghost超级助手 1.00 beta II
- [JZOJ3736]数学题