HDU 3874 树状数组 边查询边更新
来源:互联网 发布:电动汽车专用单片机 编辑:程序博客网 时间:2024/06/06 08:47
树状数组的好题,
对于一对查询,边查询边更新。
那个只能出现一个这个条件就是更新
每次把上一次出现的地方的东西消灭掉,换成最新的这个地方的。
第一次做这种边查询,边更新的题目呢。
好题!
HDU 上要用 I64 代替 lld 啊 真不习惯
#include <iostream>#include <stdio.h>#include <algorithm>#include <string.h>using namespace std;#define MAX 1000009 #define INF 0x3f3f3f3f#define MS(x) memset(x,0,sizeof(x))#define ll __int64int pos[MAX];ll num[MAX];ll bit[MAX];ll res[MAX];bool mark[MAX];int n;struct node{int l,r,index;bool operator < (const node &o) const{return r<o.r;}}query[MAX];void add(int i,int x){while(i<=n){bit[i]+=x;i+=i&(-i);}}ll sum(int i){ll ans=0;while(i>0){ans+=bit[i];i-=(i&(-i));}return ans;}int main(){int T;freopen("acm.in","r",stdin);scanf("%d",&T);while(T--){MS(mark);MS(bit);scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%I64d",&num[i]);int m;scanf("%d",&m);for(int i=1;i<=m;i++){scanf("%d%d",&query[i].l,&query[i].r),query[i].index=i;if(query[i].l>query[i].r)swap(query[i].l,query[i].r);}sort(query+1,query+m+1);int i=1;for(int j=1;j<=m;j++){while(i<=query[j].r){if(!mark[num[i]])add(i,num[i]),mark[num[i]]=1,pos[num[i]]=i;elseadd(pos[num[i]],-num[i]),add(i,num[i]),pos[num[i]]=i;i++;}res[query[j].index]=sum(query[j].r)-sum(query[j].l-1);}for(int i=1;i<=m;i++)printf("%I64d\n",res[i]);}return 0;}
0 0
- HDU 3874 树状数组 边查询边更新
- [HDU 4031]Attack[树状数组区间更新单点查询]
- hdu 4533(树状数组区间更新+单点查询)
- poj2155树状数组 区间更新 单点查询
- 树状数组的单点更新,区间查询。
- 树状数组(区间更新区间查询)
- 【树状数组 区间更新区间查询】code
- hdu 3874 树状数组
- hdu 3874(树状数组)
- hdu 3874 树状数组
- HDU 3874 树状数组
- hdu 3874 树状数组
- hdu 2642 二维树状数组 单点更新区间查询 模板水题
- hdu 2642二维树状数组 单点更新区间查询 模板题
- [HDU 1754]I Hate It[树状数组查询+更新区间最大值]
- HDu 1556 Color the ball【线段树&&树状数组】区间更新,单点查询
- [HDU]1394 Minimum Inversion Number (树状数组--单点更新,区间查询 求逆序数)
- HDU 6203 ping ping ping LCA + dfs序 + 树状数组(区间更新单点查询)
- 《UNIX环境高级编程》笔记--系统标识
- 工作日志
- Android的Handler总结
- java学习第5天
- Linux下python升级
- HDU 3874 树状数组 边查询边更新
- Python数据可视化——散点图
- LeetCode 61 — Rotate List(C++ Java Python)
- 程序员如何快速准备面试中的算法
- QT文件IO操作
- Android数据存储方式之SharedPreference
- java jdk1.7 search
- POJ2288
- UVa 140 - Bandwidth