bzoj5055 膜法师
Description
Input
Output
Sample Input
4
1 2 3 4
样例二
10
6 8 4 1 3 0 7 5 9 2
Sample Output
50
样例输出2
1737
样例解释
对于样例 1
有满足条件的序列为
{1,2,3}——6
{1,2,4}——8
{1,3,4}——12
{2,3,4}——24
ans=6+8+12+24=50
数据范围
30%的数据n<=300
60%的数据n<=3000
100%的数据n<=300000
0<=a[i]<=2147483647
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
int Mod=;
int n,sz;
ll ans,sum1[],sum2[],has[],a[],b[];
ll c[][];
void pushup(int rt,int p)
{
c[rt][p]=(c[rt*][p]+c[rt*+][p])%Mod;
}
void update(int rt,int l,int r,int x,ll d,int p)
{
if (l==r)
{
c[rt][p]+=d;
c[rt][p]%=Mod;
return;
}
int mid=(l+r)/;
if (x<=mid) update(rt*,l,mid,x,d,p);
else update(rt*+,mid+,r,x,d,p);
pushup(rt,p);
}
ll query(int rt,int l,int r,int L,int R,int p)
{
if (l>=L&&r<=R)
{
return c[rt][p];
}
int mid=(l+r)/;
ll s=;
if (L<=mid) s+=query(rt*,l,mid,L,R,p);
s%=Mod;
if (R>mid) s+=query(rt*+,mid+,r,L,R,p);
s%=Mod;
return s;
}
int main()
{
int i;
cin>>n;
for (i=; i<=n; i++)
{
scanf("%lld",&a[i]);
b[i]=a[i];
}
sort(b+,b+n+);
sz=unique(b+,b+n+)-(b+);
for (i=; i<=n; i++)
{
ll x=a[i];
a[i]=lower_bound(b+,b+sz+,a[i])-b;
has[a[i]]=x%Mod;
}
for (i=; i<=n; i++)
{
if (a[i]->=)
sum1[i]=query(,,sz,,a[i]-,)%Mod;
update(,,sz,a[i],has[a[i]],);
}
for (i=n; i>=; i--)
{
if (a[i]+<=sz)
sum2[i]=query(,,sz,a[i]+,sz,)%Mod;
update(,,sz,a[i],has[a[i]],);
}
for (i=; i<n; i++)
{
ans+=(has[a[i]]*sum1[i]%Mod)*sum2[i]%Mod;
ans%=Mod;
}
cout<<ans;
}
bzoj5055 膜法师的更多相关文章
- bzoj5055: 膜法师(BIT)
大水题WA了两发T T 记录一下a[i]的前缀和,a[i]*a[j]就是sigma(a[j]*sumi[j-1]) 记录一下a[i]*a[j]的前缀和,a[i]*a[j]*a[k]就是sigma(a[ ...
- 【BZOJ5055】膜法师 树状数组
[BZOJ5055]膜法师 Description 题目描述 在给定的维度序列a中, 求出所有满足i<j<k且ai<aj<ak的ai*aj*ak的和 即 ∑ (a_i*a_j* ...
- [BZOJ 5055]膜法师
Description 在经历过1e9次大型战争后的宇宙中现在还剩下n个完美维度, 现在来自多元宇宙的膜法师,想偷取其中的三个维度为伟大的长者续秒, 显然,他能为长者所续的时间,为这三个维度上能量的乘 ...
- BZOJ_5055_膜法师_树状数组+离散化
BZOJ_5055_膜法师_树状数组+离散化 Description 在经历过1e9次大型战争后的宇宙中现在还剩下n个完美维度, 现在来自多元宇宙的膜法师,想偷取其中的三个维度为伟大的长者续秒, 显然 ...
- bzoj 5055: 膜法师——树状数组
Description 在经历过1e9次大型战争后的宇宙中现在还剩下n个完美维度, 现在来自多元宇宙的膜法师,想偷取其中的三个维度为伟大的长者续秒, 显然,他能为长者所续的时间,为这三个维度上能量的乘 ...
- bzoj 5055: 膜法师 -- 树状数组
5055: 膜法师 Time Limit: 10 Sec Memory Limit: 128 MB Description 在经历过1e9次大型战争后的宇宙中现在还剩下n个完美维度, 现在来自多元宇 ...
- JZOJ.5280【NOIP2017模拟8.15】膜法师
Description
- [JZOJ5280]膜法师题解--思维+前缀和
[JZOJ5280]膜法师题解--思维+前缀和 题目链接 暴 力 过 于
- 【bzoj5055】膜法师(离散化+树状数组)
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=5055 这道题……不得不说,从标题到题面都能看出一股浓浓的膜法气息……苟…… 题意就是统计顺序 ...
随机推荐
- Rails Migration Data Model栏位修改及数据类型介绍
测试版本Ruby:2.3.1 Rails:5.0.1 一.增加栏位 给devise默认的用户新增增加username字段 $ rails generate migration add_ ...
- Beta 第七天
今天遇到的困难: 构造新适配器的时候出现了某些崩溃的问题 ListView监听器有部分的Bug 今天完成的任务: 陈甘霖:完成相机调用和图库功能,完成阿尔法项目遗留下来的位置调用问题,实现百度定位 蔡 ...
- 20162328蔡文琛week06
学号 2016-2017-2 <程序设计与数据结构>第X周学习总结 教材学习内容总结 继承是从已有类派生出一个新类的过程. 继承的目的之一之复用已有的软件. 继承呢在子类和父类见建立了is ...
- Scrum 冲刺 总结
Scrum 冲刺 总结 冲刺阶段链接 Scrum冲刺第一天 Scrum冲刺第二天 Scrum冲刺第三天 Scrum冲刺第四天 Scrum冲刺第五天 Scrum冲刺第六天 Scrum冲刺第七天 冲刺阶段 ...
- DML数据操作语言之复杂查询
1.视图(View) 我们知道,在关系型数据库中,用来保存实际数据记录的是数据表.和表同等概念也是用来保存东西是:视图. 但是数据表是用来保存实际数据记录的,而视图是用来保存常用select语句的. ...
- HTML,文字两端对齐
text-align: justify样式的意思是文字两端对齐,但是有时候你会发现这东西不起左右,比如在div标签中的文字. 解决方法:在div中放一个空的span标签,并使用下面的样式. .just ...
- nyoj 公约数和公倍数
公约数和公倍数 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 小明被一个问题给难住了,现在需要你帮帮忙.问题是:给出两个正整数,求出它们的最大公约数和最小公倍数. ...
- C# 使用 ffmpeg 进行音频转码
先放一下 ffmpeg 的官方文档以及下载地址: 官方文档:http://ffmpeg.org/ffmpeg.html 下载地址:http://ffmpeg.org/download.html 用 f ...
- AutoCAD中的扩展字典及扩展记录(C#)
在学习CAD扩展记录的过程中,遇到了一些问题,也积累了一些经验,现在给大家分享一些我的学习心得.在学习扩展字典之前需要读者了解cad的组码,也就是DxfCode.感兴趣的也可以了解一下扩展数据的相关内 ...
- 以太坊挖矿源码:clique算法
上文我们总结了以太坊最主要的共识算法:ethash算法,本文将重点分析以太坊的另一个共识算法:clique. 关键字:clique,共识算法,puppeth,以太坊地址原理,区块校验,认证结点,POA ...