不知道哪里的oj。。做了交不上去。。

也是莫队的模板题

#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
#define MAXN 100005
#define ll long long
struct Query{
int L,R,id;
}q[MAXN];
ll ans[MAXN],cnt[MAXN];//这个颜色在当前区间出现的次数
int s,note[MAXN];
bool cmp(Query a,Query b){
if(a.L/s == b.L/s) return a.R<b.R;
return a.L/s < b.L/s;
}
ll cube(ll a){
return a*a*a;
}
int main(){
int n,m;
scanf("%d",&n);
s=(int)sqrt(n);
for(int i=;i<=n;i++) scanf("%d",&note[i]);
scanf("%d",&m);
for(int i=;i<m;i++) {
int a,b;
scanf("%d%d",&a,&b);
q[i]=(Query){a,b,i};
}
sort(q,q+m,cmp);
int L=,R=;
ll res=;
for(int i=;i<m;i++){
while(R<q[i].R){
R++;
res+=cube((cnt[note[R]]+))-cube(cnt[note[R]]);
cnt[note[R]]++;
}
while(R>q[i].R){
res-=cube(cnt[note[R]])-cube(cnt[note[R]]-);
cnt[note[R]]--;
R--;
}
while(L<q[i].L){
res-=cube(cnt[note[L]])-cube(cnt[note[L]]-);
cnt[note[L]]--;
L++;
}
while(L>q[i].L){
L--;
res+=cube(cnt[note[L]]+)-cube(cnt[note[L]]);
cnt[note[L]]++;
}
ans[q[i].id]=res;
}
for(int i=;i<m;i++){
printf("%d\n", ans[i]);
}
return ;
}

NBUT1457的更多相关文章

  1. NBUT1457 Sona 莫队算法

    由于10^9很大,所以先离散化一下,把给你的这一段数哈希 时间复杂度O(nlogn) 然后就是分块莫队 已知[L,R],由于事先的离散化,可以在O(1)的的时间更新[l+1,r],[l,r+1],[l ...

随机推荐

  1. python字典遍历的几种方法

    (1)遍历key值 >>> a {'} >>> for key in a: print(key+':'+a[key])   a:1 b:2 c:3 >> ...

  2. Css的前世今生

    Css的基础知识扫盲 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. HTML的用法没有什么技巧,就是死记硬背,当然你不需要都记下来,能记住20个常用的标签基本上就OK了,其他不常用 ...

  3. nginx的location、root、alias指令用法和区别

    nginx指定文件路径有两种方式root和alias,指令的使用方法和作用域: [root] 语法:root path 默认值:root html 配置段:http.server.location.i ...

  4. 解决iOS10下Meta设置user-scalable=no无效问题

    苹果为了提高Safari中网站的辅助功能,屏蔽了Meta下的user-scalable=no功能 所以在iOS10下面,就算加上user-scalable=no,Safari浏览器也能支持手动缩放 解 ...

  5. OSI七层模型与TCP/IP四层模型

    OSI七层模型与TCP/IP四层模型 OSI模型(Open System Interconnection Reference Model,缩写为OSI),全名“开放式系统互联通信参考模型”,是一个试图 ...

  6. Entry point (0x08000000) points to a Thumb instruction but is not a valid Thumb code pointer.

    1.菜单 project-options-linker-misc controls加入 --entry Reset_Handler --first __Vectors 2.导入startup_stm3 ...

  7. js设置div透明度

    原生js设置透明度 为了兼容IE与其他浏览器对透明度的设置,我们需要对以上两种样式分别进行设置: 复制代码代码如下: var alpha = 30; //透明度值变量 var oDiv = docum ...

  8. POJ3694 Network【连通分量+LCA】

    题意: 一个无向图可以有重边,下面q个操作,每次在两个点间连接一条有向边,每次连接后整个无向图还剩下多少桥(注意是要考虑之前连了的边,每次回答是在上一次的基础之上). 思路: 首先运行一次Tarjan ...

  9. 关于Laravel 迁移数据库的问题

    今天在Homestead 中用 php artisan migrate 迁移数据库时出现了拒绝的情况: ***之后发现只要修改项目文件夹下面的database.php 和.env 文件中的数据库配置, ...

  10. javascript方法--bind()

    bind方法,顾名思义,就是绑定的意思,到底是怎么绑定然后怎么用呢,下面就来说说我对这个方法的理解. 语法 fun.bind(this,arg1,arg2,...) bind()方法会创建一个新的函数 ...