hdu 3874 Necklace
来源:互联网 发布:淘宝付款系统异常 编辑:程序博客网 时间:2024/05/18 03:03
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3874
这道题目以前做过,再做的时候却忘了,可能当时也不完全是自己想出来的,印象不深,这里用到了离线算法,先将询问排序,然后用树状树组进行操作,如果一个价值没有出现过,则将其位置加上相应价值,如果出现过,则在当前位置加上该价值,而在已经出现过该价值的位置删除该价值,相当于一个移位操作,保证相同价值总出现在最后,从而保证了算法的正确性,最后用树状数组进行求和。
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;__int64 c[51000];int flag[1000100];struct node{ int x,y,id; }q[200100];__int64 ans[200100];bool operator<(node a,node b){ return a.y<b.y;}int lowbit(int x){ return x&(-x);}void modify(int x,int n,int data){ for(int i=x;i<=n;i+=lowbit(i)) { c[i]+=data; }}__int64 getsum(int x){ __int64 sum=0; for(int i=x;i>0;i-=lowbit(i)) { sum+=c[i]; } return sum;}int main(){ int t,n,m,i,a[51000]; scanf("%d",&t); while(t--) { memset(c,0,sizeof(c)); memset(flag,0,sizeof(flag)); scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&a[i]); } scanf("%d",&m); for(i=1;i<=m;i++) { scanf("%d%d",&q[i].x,&q[i].y); q[i].id=i; } sort(q+1,q+m+1); int j=1; for(i=1;i<=n;i++) { if(flag[a[i]]==0) { modify(i,n,a[i]); flag[a[i]]=i; } else { modify(i,n,a[i]); modify(flag[a[i]],n,-a[i]); flag[a[i]]=i; } while(q[j].y==i&&j<=m) {//printf("q%d\n",q[j].y); if(q[j].x>1) ans[q[j].id]=getsum(q[j].y)-getsum(q[j].x-1); else ans[q[j].id]=getsum(q[j].y); // printf("a%d\n",q[j].ans); j++; } if(j>m) break; } for(i=1;i<=m;i++) { printf("%I64d\n",ans[i]); } } return 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
- HDU 3874 Necklace (树状数组)
- Hdu 3874 Necklace 树状数组
- hdu 3874 Necklace 线段树
- hdu 3874 Necklace (树状数组)
- hdu 3874 Necklace(线段树)
- HDU-3874 Necklace(线段树)
- Necklace HDU
- Necklace HDU
- HDU 3874 Necklace 树状数组的应用
- hdu 3874 Necklace 线段树 单点更新
- Android 日历提供器(三)
- 恒压源电路设计
- 九度1113:二叉树 解题报告
- 启动Outlook时提示ESET NOD32的Outlook插件错误
- 数据库扩展
- hdu 3874 Necklace
- 使用挂载命令解决ftp复杂权限设置
- vc获得网卡流量信息
- 在RedHat上安装mysql时要到命令
- 张孝祥 java笔记
- Java转Delphi的工具类
- jquery 选择器
- 【基于联通性的状态压缩动态规划】
- Cortex-M3启动分析