[JZOJ5422]【NOIP2017提高A组集训10.25】天才绅士少女助手克里斯蒂娜
来源:互联网 发布:asp连接sql数据库 编辑:程序博客网 时间:2024/04/29 21:30
Description
给定N个向量
需要支持两种操作,修改某一个向量
或者对于一个区间
Solution
因为
平方式子拆出来
对于每个次询问维护
这样是
考虑优化
那就非常方便处理了
设
那么区间的答案容易得出就是
也就是
树状数组维护一下即可
Code
#include <cstdio>#include <iostream>#include <cstdlib>#include <cstring>#include <algorithm>#include <cmath>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fod(i,a,b) for(int i=a;i>=b;i--)#define N 1000005#define LL long long#define mo 20170927using namespace std;LL c[3][N],a[N],b[N];int n,m;int lowbit(int k){ return k&(-k);}void put(int k,LL v,int q){ while(k<=n) (c[q][k]+=v)%=mo,k+=lowbit(k);}LL get(int k,int q){ LL s=0; while(k) (s+=c[q][k])%=mo,k-=lowbit(k); return s;}int main(){ freopen("kurisu.in","r",stdin); freopen("kurisu.out","w",stdout); cin>>n>>m; fo(i,1,n) scanf("%lld%lld",&a[i],&b[i]),put(i,a[i]*a[i]%mo,0),put(i,b[i]*b[i]%mo,1),put(i,a[i]*b[i]%mo,2); LL ny=10085464; fo(i,1,m) { int p,v; LL l,r; scanf("%d",&v); if(v==1) { scanf("%d%lld%lld",&p,&l,&r); put(p,(l*l%mo-a[p]*a[p])%mo,0),put(p,(r*r%mo-b[p]*b[p]%mo)%mo,1),put(p,(l*r%mo-a[p]*b[p]%mo)%mo,2); a[p]=l,b[p]=r; } else { scanf("%lld%lld",&l,&r); LL s1=(get(r,0)-get(l-1,0)+mo)%mo,s2=(get(r,1)-get(l-1,1)+mo)%mo,sc=(get(r,2)-get(l-1,2)+mo)%mo; printf("%lld\n",(s1*s2%mo-sc*sc%mo+(LL)5*mo)%mo); } }}
阅读全文
0 0
- [JZOJ5422]【NOIP2017提高A组集训10.25】天才绅士少女助手克里斯蒂娜
- JZOJ5422. 【NOIP2017提高A组集训10.25】天才绅士少女助手克里斯蒂娜
- 【NOIP2017提高A组集训10.25】天才绅士少女助手克里斯蒂娜(树状数组)
- 【NOIP2017提高A组集训10.25】天才绅士少女助手克里斯蒂娜
- JZOJ 5422. 【NOIP2017提高A组集训10.25】天才绅士少女助手克里斯蒂娜
- Jzoj5422 天才绅士少女助手克里斯蒂娜
- [2017纪中10-25]天才绅士少女助手克里斯蒂娜 线段树
- 【NOIP2017提高A组集训10.25】吃草
- [JZOJ5424]【NOIP2017提高A组集训10.25】凤凰院凶真
- 【NOIP2017提高A组集训10.25】凤凰院凶真(dp)
- 【JZOJ 5421】【NOIP2017提高A组集训10.25】嘟嘟噜
- 【JZOJ 5424】【NOIP2017提高A组集训10.25】凤凰院凶真
- JZOJ. 5421【NOIP2017提高A组集训10.25】嘟嘟噜
- JZOJ 5424. 【NOIP2017提高A组集训10.25】凤凰院凶真
- 【JZOJ5424】【NOIP2017提高A组集训10.25】凤凰院凶真
- JZOJ 5424. 【NOIP2017提高A组集训10.25】凤凰院凶真
- JZOJ5424. 【NOIP2017提高A组集训10.25】凤凰院凶真
- JZOJ 5425. 【NOIP2017提高A组集训10.25】数论
- 《程序设计入门—Java语言.翁恺》第七周编程作业(2)-完数
- Delphi7 可用的MD5加密单元
- Java版本发展历程
- spring整合redis
- seed()
- [JZOJ5422]【NOIP2017提高A组集训10.25】天才绅士少女助手克里斯蒂娜
- RecyclerView 滚动到底部监听
- Android中头布局(Banner)
- 一个有趣又诡异的频繁CMS问题
- oracle timestamp类型和date类型的区别
- iOS平台5+SDK集成
- 【Qt开发】Qt5.9安装
- Nutch2.2.1之MySQL数据库的配置和建表webpage语句
- MyFirstArticle