bzoj 5055: 膜法师
来源:互联网 发布:淘宝这几天有啥活动 编辑:程序博客网 时间:2024/04/29 01:46
题意:题面最后三行。
题解:假如我们固定j,那么式子就变成了
代码:
#include<cstdio>#include<cstring>#include<algorithm>#include<map>using namespace std;int n,a[300010],nn=0,mod=19260817;long long s[300010],l[300010],r[300010],ans=0;map<int,int>lsh;int lb(int x){ return x&-x;}void add(int x,long long y){ for(int i=x;i<=nn;i+=lb(i)) s[i]+=y;}long long get(int x){ long long ans=0; for(int i=x;i>0;i-=lb(i)) ans+=s[i]; return ans;}int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); lsh[a[i]]=1; } for(map<int,int>::iterator it=lsh.begin();it!=lsh.end();it++) it->second=++nn; for(int i=1;i<=n;i++) { l[i]=get(lsh[a[i]]-1); add(lsh[a[i]],a[i]); } memset(s,0,sizeof(s)); for(int i=n;i>0;i--) { r[i]=get(nn)-get(lsh[a[i]]); add(lsh[a[i]],a[i]); } for(int i=1;i<=n;i++) {// printf("%lld %lld\n",l[i],r[i]); ans=(ans+(l[i]%mod)*(r[i]%mod)%mod*(a[i]%mod)%mod)%mod; } printf("%lld",ans);}
阅读全文
0 0
- bzoj 5055: 膜法师
- bzoj 5055: 膜法师
- BZOJ 5055: 膜法师 树状数组
- BZOJ[5055]膜法师 树状数组
- 【bzoj 5055】膜法师(树状数组)
- COGS 2487 膜法师
- bzoj5055: 膜法师
- bzoj5055 膜法师
- 【bzoj5055】膜法师
- [bzoj5055]膜法师 树状数组
- 法师的法师的
- 法师的法师的
- 按时打发飒飒发飒飒法师法师法师法师法师
- JZOJ5280. 【NOIP提高组模拟A组8.15】膜法师
- 【jzoj5280】【NOIP提高组模拟A组8.15】【膜法师】
- 膜法师【NOIP提高组模拟A组8.15】
- 【JZOJ5280】【NOIP提高组模拟A组8.15】膜法师
- 也谈弘一法师
- android开发-横竖屏切换生命周期(非网传版)
- codeforces 855A
- 500. Keyboard Row
- Python初学者(零基础学习Python、Python入门)常见问题:书籍推荐、资料、社区
- 第二章静态网页开发技术
- bzoj 5055: 膜法师
- opengl es 初始化及android切后台opengl上下文丢失
- 商品编码(JS)
- OpenGL 纹理单元的使用步骤
- 大话数据结构读书笔记(2)----线性表(2)
- 登录页面
- C++面向对象的程序开发
- 内网穿透访问本地的Java Web项目
- 思维导图-深入理解计算机操作系统