hdu 3874 Necklace 线段树
来源:互联网 发布:淘宝网店装修多少钱 编辑:程序博客网 时间:2024/05/22 00:07
跟hdu3333相同,改下N和Q数据范围即可
#include<iostream>#include<cstdio>#include<algorithm>#include<map>using namespace std;#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1const int N=50005;const int Q=200005;typedef long long LL;int n,tt,qq;map<LL,int> hashs;LL sum[N*4],A[N],ans[Q];struct QN{int l,r,index;}q[Q];int cmp(QN a,QN b){return a.r<b.r;}void build(int l,int r,int rt){sum[rt]=0;if(l==r) return;int m=(l+r)/2;build(lson);build(rson);}void push_up(int rt){sum[rt]=sum[rt*2]+sum[rt*2+1];}void update(int a,LL c,int l,int r,int rt){//单点更新a的值为cif(l==r){sum[rt]=c;return;}int m=(l+r)/2;if(a<=m)update(a,c,lson);elseupdate(a,c,rson);push_up(rt);}LL query(int a,int b,int l,int r,int rt){if(a<=l&&b>=r)return sum[rt];int m=(l+r)/2;LL rst=0;if(a<=m)rst+=query(a,b,lson);if(b>m)rst+=query(a,b,rson);return rst;}void solve(){int pos=1;for(int i=0;i<qq;i++){while(q[i].r>=pos){//加入aif(hashs[A[pos]])//删除前一个update(hashs[A[pos]],0,1,n,1);hashs[A[pos]]=pos;update(pos,A[pos],1,n,1);pos++;//pos放上面好像出问题}ans[q[i].index]=query(q[i].l,q[i].r,1,n,1);}}int main(){for(cin>>tt;tt>0;tt--){hashs.clear();cin>>n;build(1,n,1);for(int i=1;i<=n;i++)scanf("%d",&A[i]);cin>>qq;for(int i=0;i<qq;i++){//按r排序,离线查scanf("%d %d",&q[i].l,&q[i].r);q[i].index=i;}sort(q,q+qq,cmp);solve();for(int i=0;i<qq;i++)printf("%I64d\n",ans[i]);}return 0;}
0 0
- 线段树 HDU 3874 necklace
- hdu 3874 Necklace 线段树
- hdu 3874 Necklace(线段树)
- HDU-3874 Necklace(线段树)
- hdu 3874 Necklace 线段树 单点更新
- hdu 3874 Necklace(线段树)
- HDU - 3874 Necklace (线段树 + 离线处理)
- HDU 3874 Necklace(线段树啊 单点更新 区间求和)
- 线段树 hdu3874 Necklace
- HDU 3874 Necklace (线段树单点更新+区间查询+离线操作)
- hdu 3874 Necklace(离线操作+树状数组或线段树)
- hdu 3874 Necklace
- hdu 3874 Necklace
- hdu 3874 Necklace
- hdu 3874 Necklace
- HDU 3874 Necklace
- HDU 3874 Necklace
- HDOJ 3874 Necklace 线段树 单点更新 成段查询
- aoj 595 撒哈拉大冒险
- 黄金分割数 蓝桥杯
- 没有tools.jar包的解决办法
- HDU 1158 Employment Planning (简单二维dp)
- 线段树专题
- hdu 3874 Necklace 线段树
- 性能测试之LoardRunner 测试场景监控关注的几点
- 430仿真器安装驱动提示INF找不到所需的段落解决方法
- java中的AWT布局管理器
- 二分法 哈希表送上(详见sdut1480)
- 提高编程能力的建议
- Maven生命周期详解
- 2014.2.22 C语言 头文件
- winrar破解方法