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 这道题……不得不说,从标题到题面都能看出一股浓浓的膜法气息……苟…… 题意就是统计顺序 ...
随机推荐
- 201621123054 《Java程序设计》第六周实验总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. 1.2 可选:使用常规方法总结其他上课内容. 2 ...
- Flask jinja2 全局函数,宏
内置全局函数 dict()函数,方便生成字典型变量 {% set user = dict(name='Mike',age=15) %} <p>{{ user | tojson | safe ...
- C实现单链表
typedef int DataType; typedef struct ListNode { DataType data; struct ListNode* next; }ListNode; //初 ...
- 《高级软件测试》11.14.安装和运行Jira
今日任务完成情况如下: 小段:研究Jira在Linux的安装教程 小费:尝试在Ubuntu下安装Jira 小高:查阅了关于Jira软件的介绍和安装教程,下载准备明天安装,并学习使用 小王:注册Jira ...
- EXT3文件系统误删除导致文件系统中的邮件丢失恢复方法
一.故障描述 由8块盘组成的RAID5, 上层是EXT3文件系统,由于误删除导致文件系统中的邮件丢失 二.镜像磁盘为防止数据恢复过程中由于误操作对原始磁盘造成二次破坏, 使用winhex软件为每块磁盘 ...
- javascript实现小鸟飞行轨迹
javascript实现小鸟飞行轨迹 代码如下:
- 11-移动端开发教程-zepto.js入门教程
Zepto.js是一个轻量级的针对现代浏览器的JavaScript库, 它与jquery有着类似的api. 如果你会用jquery,那么你也会用zepto. 1. Why Zepto.js? API类 ...
- Web Api 过滤器之 ExceptionFilter 异常过滤器
一.服务器出现异常,会统一向客户端返回 500 的错误. [RoutePrefix("api/test")] public class TestController : ApiCo ...
- 快速获取表单多条数据,使用ajax传递给后台
当表单中有多条数据需要向后台传递时,一个一个的获取显然是不可取的办法,可以借助表单的serialize()方法获取. HTML: <form id="form"> &l ...
- 新概念英语(1-3)Sorry, sir
Does the man get his umbrella back? A:My coat and my umbrella please. B:Here is my ticket. A:Thank y ...