莫队模板题...

不过树状数组也可以做...跟HH的项链几乎一模一样,离线询问,然后记录前缀,更新的时候把前缀删掉就好了,然而这题开long long,卡空间

 //hgs AK IOI,IMO,ICHO,IPHO
#include<bits/stdc++.h>
#define int long long
#define writeln(x) write(x),puts("")
#define writep(x) write(x),putchar(' ')
using namespace std;
inline int read(){
int ans=,f=;char chr=getchar();
while(!isdigit(chr)){if(chr=='-') f=-;chr=getchar();}
while(isdigit(chr)){ans=(ans<<)+(ans<<)+chr-;chr=getchar();}
return ans*f;
}void write(int x){
if(x<) putchar('-'),x=-x;
if(x>) write(x/);
putchar(x%+'');
}const int M = 3e5+;
int n,m,a[M],pos[M],pre[M],b[M],len,Ans[M];
struct Que{int l,r,id;}q[M];
bool cmp(const Que&x,const Que&y){return x.r<y.r;}
int s[M];
#define lowbit(x) (x&-x)
inline void Update(int x,int y){if(x==)return;for(;x<=n;x+=lowbit(x))s[x]+=y;}
inline int Query (int x){int ans=;for(;x;x-=lowbit(x))ans+=s[x];return ans;}
signed main(){
int Time=read();
while(Time--){memset(pre,,sizeof(pre)),memset(pos,,sizeof(pos));
n=read();for(int i=;i<=n;++i)b[i]=a[i]=read();
sort(b+,b+n+),len=unique(b+,b+n+)-b-;memset(s,,sizeof(s));
for(int i=;i<=n;i++)a[i]=lower_bound(b+,b+len+,a[i])-b,pre[i]=pos[a[i]],pos[a[i]]=i;
m=read();for(int i=;i<=m;++i)q[i].l=read(),q[i].r=read(),q[i].id=i;sort(q+,q+m+,cmp);
for(int i=,j=;i<=m;i++){
for(;j<=q[i].r;j++)Update(pre[j],-b[a[pre[j]]]),Update(j,b[a[j]]);
Ans[q[i].id]=Query(q[i].r)-Query(q[i].l-);
}for(int i=;i<=m;i++)printf("%lld\n",Ans[i]);
}
return ;
}

最新文章

  1. table相关的API
  2. ajax简单案例:返回json型
  3. javascript_22_for_二维数组
  4. Html5大文件断点续传
  5. [工具]toolbox_graph基本操作
  6. Python核心编程2第三章课后练习
  7. Java实现验证码图片
  8. eclipse git 一个错误:the current branch is not configured for pull No value for key branch.xxx.merge found
  9. ESB与SOA的关系
  10. appnium框架以及源码研究
  11. hihoCoder挑战赛11 A 随机斐波那契
  12. HttpGet HttpPost
  13. jenkins-参数化构建(二)插件:Extended Choice Parameter
  14. 发现一个新的注入 代码 eval
  15. Gcode命令【转】
  16. GitHub18
  17. unity3d 第一人称脚本解释MouseLook
  18. 拼接html a标签字符串,onClick传递两个字符串类型参数写法
  19. c++构造函数中调用构造函数---匿名对象再探
  20. GIS+=地理信息+行业+大数据——基于云环境流处理平台下的实时交通创新型app

热门文章

  1. spring security 学习二
  2. js保留两位小数的方法
  3. BUUCTF RE部分题目wp
  4. LinkButton(按钮)组件
  5. Oracle 一个表的数据update到另一个表
  6. codeforces1156D 0-1-Tree 并查集
  7. 通信有连接有消息队列选择boost.asio
  8. html浮动小问题
  9. css样式重叠、css样式继承、css 属性计算,,a元素下的文字颜色不能继承
  10. Python删除文件夹