HDU3333 Turing Tree 离线树状数组
题意:统计一段区间内不同的数的和
分析:排序查询区间,离线树状数组
#include <cstdio> #include <cmath> #include <cstring> #include <algorithm> using namespace std; typedef long long LL; const int N = 3e4+5; const int mod = 1e9+7; LL c[N]; int n,q,x,y,T,pre[N]; struct Node{int v,id; }a[N]; bool cmpv(Node a,Node b){if(a.v==b.v)return a.id<b.id;return a.v<b.v; } bool cmpid(Node a,Node b){return a.id<b.id; } void add(int x,LL t){for(int i=x;i<=n;i+=i&(-i))c[i]+=t; } LL ask(int x){LL ret=0;for(int i=x;i;i-=i&(-i))ret+=c[i];return ret; } struct Que{int l,r,id;bool operator<(const Que &rhs)const{return r<rhs.r;} }p[100000]; LL ret[100000]; int main(){scanf("%d",&T);while(T--){scanf("%d",&n);for(int i=1;i<=n;++i)scanf("%d",&a[i].v),a[i].id=i;sort(a+1,a+1+n,cmpv);for(int i=1;i<=n;++i){pre[a[i].id]=-1;if(i!=1&&a[i].v==a[i-1].v)pre[a[i].id]=a[i-1].id;}sort(a+1,a+1+n,cmpid);memset(c,0,sizeof(c));scanf("%d",&q);for(int i=0;i<q;++i)scanf("%d%d",&p[i].l,&p[i].r),p[i].id=i;sort(p,p+q);for(int i=0,cur=1;i<q;++i){for(;cur<=p[i].r;++cur){if(pre[cur]!=-1)add(pre[cur],-a[cur].v);add(cur,a[cur].v);}ret[p[i].id]=ask(p[i].r)-ask(p[i].l-1);}for(int i=0;i<q;++i)printf("%I64d\n",ret[i]); }return 0; }
View Code
转载于:https://www.cnblogs.com/shuguangzw/p/5741746.html
HDU3333 Turing Tree 离线树状数组相关推荐
- HDU 3333 Turing Tree(树状数组/主席树)
题意 给定一个长度为 \(n\) 的序列,\(m\) 个查询,每次查询区间 \([L,R]\) 范围内不同元素的和. \(1\leq T \leq 10\) \(1 \leq n\leq 300 ...
- HDU 3333 Turing Tree(树状数组+离线处理+离散化)
题目大意 给一个 n(1≤n≤30000) 个数,数的范围是 0~109.现在给了 Q 个询问,询问的内容是:一个区间 [L, R] 中,所有不同的数的和是多少? 其实和 HDU 3874 一个意思 ...
- 数据结构一【树状数组】普通、二维、离线树状数组的(单点修改,单点查询,区间修改,区间查询)模板及应用例题总结
文章目录 树状数组 lowbit 线段树与树状数组 单点修改 区间查询 区间修改 区间求和 二维树状数组 离线树状数组 例题 POJ:stars MooFest [SDOI2009]HH的项链 Tur ...
- 2016 UESTC Training for Data Structures K - 郭大侠与甲铁城 CDOJ 1342 离线树状数组
K - 郭大侠与甲铁城 有一个区间,长度1e5,每个点有一种颜色,颜色属于[1,1000],离线询问某个区间的颜色种树,询问次数也少1e5 我的做法是离线树状数组 首先把区间保存下来,按右端点升序排序 ...
- hdu 4605 Magic Ball Game (在线主席树/离线树状数组)
版权声明:本文为博主原创文章,未经博主允许不得转载. hdu 4605 题意: 有一颗树,根节点为1,每一个节点要么有两个子节点,要么没有,每个节点都有一个权值wi .然后,有一个球,附带值x . 球 ...
- 牛客小白9 换个角度思考(离线+树状数组)
title: 牛客小白9 换个角度思考(离线+树状数组) date: 2018-11-29 15:25:18 tags: [离线,树状数组] categories: ACM 题目链接 题目描述 给定一 ...
- 【BZOJ3653】谈笑风生 离线+树状数组+DFS序
[BZOJ3653]谈笑风生 Description 设T 为一棵有根树,我们做如下的定义: ? 设a和b为T 中的两个不同节点.如果a是b的祖先,那么称"a比b不知道高明到哪里去了&quo ...
- bzoj2754:[SCOI2012]喵星球上的点名 (后缀数组+离线+树状数组)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2754 题目分析:最近两个星期都在做数论题,感觉有些无聊.昨天忽然间想起省赛前还有一个这题 ...
- [HEOI2012]采花(思维 + 离线 + 树状数组)
题目链接 分析 我只能说太妙了- 离线 + 树状数组 参考题解: 这个题要和<HH的项链>做对比: 关键就是为什么要离线处理,以及 怎么对区间进行排序和维护: [SDOI2009]HH的项 ...
最新文章
- html表格中加入斜线,在HTML中显示带斜线的表格
- EDIUS输出到文件
- ExtJs选项卡,求大神解答
- Windows XP硬盘安装Ubuntu 12.04双系统
- Python中@staticmethod和@classmethod的作用和区别
- 理解神经网络函数高频成分的收敛率界限
- 人人都是 DBA(III)SQL Server 调度器
- 【送书福利8本】YYDS《剑指Offer》,百万程序员人手一册
- python字典嵌套字典的情况下获取某个key的value
- 用JavaScript刷leetcode(刷题 第一天)
- 解决无法连接mysql问题
- 想满足一点小小的欲望,怎么就这么难……咦?这儿有戏!
- 滚动截屏苹果_苹果超好用的长截图软件—滚动截屏免费分享!
- png图片转换jpg,保姆级教程一学就会
- 特教学校计算机课,北京特教学校引入编程课 计算机语言为听障孩子打开一扇智能之门...
- bootstrap btn 按钮颜色 class=btn btn-success
- vscode插件扩展 js代码高亮显示问题,美化问题,颜色问题
- 顺舟智能获中国电信智慧家庭产业联盟“智慧家庭创新合作奖”
- paddleocr学习笔记(一)从官网开始
- 学习笔记:SKU组件(React版)
热门文章
- elasticsearch ik分词插件配置自定义分词词典
- Hibernate快速入门
- Highcharts JS去除Highcharts.com链接的方法
- android入门程序源代码,安卓程序开发入门
- java调试jdk源码_JDK源码调试
- php定时发送生日模块消息_Swoft 2.0.5 更新,新增高效秒级定时任务、异常管理组件...
- 第一行代码学习笔记第十章——探究服务
- react table里跳转页面_如何在react中实现一个table切换?
- multisim怎么设置晶体管rbe_Multisim 10在单管共射放大电路中的应用
- Qt5 常见的控件类关系