143 lines
1.9 KiB
Markdown
143 lines
1.9 KiB
Markdown
# 线段树查询
|
||
|
||
## 题目背景
|
||
|
||
对于 $n^2$ 次对于所有区间的最值查询,居然有很多同学使用了线段树成功实现 $O(n^2logn)$ 复杂度,可见大家对线段树的喜爱之情溢于言表。
|
||
|
||
## 题目描述
|
||
|
||
sophie写了一棵线段树,建树和查询部分的代码如下:
|
||
```cpp
|
||
int tot = 0;
|
||
node* buildT(int l, int r){
|
||
node *p = new node;
|
||
p->l = l; p->r = r;
|
||
p->t = ++tot;//dfs序
|
||
if(l==r) return p;
|
||
|
||
int mid = (l + r)/2;
|
||
p->ls = buildT(l, mid);
|
||
p->rs = buildT(mid+1, r);
|
||
return p;
|
||
}
|
||
void query(node* p, int l, int r){
|
||
if(p->l==l && p->r==r){
|
||
//到达终止结点
|
||
return;
|
||
}
|
||
|
||
int mid = (p->l + p->r)/2;
|
||
if(r <= mid) query(p->ls, l, r);
|
||
else if(l >= mid+1) query(p->rs, l, r);
|
||
else{
|
||
query(p->ls, l, mid);
|
||
query(p->rs, mid+1, r);
|
||
}
|
||
}
|
||
```
|
||
|
||
对序列 $[1,n]$ 建完树之后,sophie在上面进行了所有 $n(n+1)/2$ 次区间查询 $[l,r]$,即 $[1,1],[1,2],...,[n,n]$(成功通过了 $n=500$ 的数据,获得12分!)
|
||
|
||
```cpp
|
||
for(int l=1;l<=n;++l){
|
||
for(int r=l;r<=n;++r){
|
||
query(rt, l, r);
|
||
}
|
||
}
|
||
```
|
||
|
||
现在sophie想知道,对于线段树上的一个节点,其在多少次查询中是**终止节点**。
|
||
|
||
## 输入格式
|
||
|
||
第一行1个整数 $n,q$
|
||
|
||
接下来 $q$ 行,每行2个整数 $t$ 代表询问线段树上dfs序为 $t$ 的节点在多少次查询中是**终止节点**
|
||
|
||
## 输出格式
|
||
|
||
输出 $q$ 行,每行1个整数代表答案
|
||
|
||
## 样例 #1
|
||
|
||
### 样例输入 #1
|
||
|
||
```
|
||
4 7
|
||
1
|
||
2
|
||
3
|
||
4
|
||
5
|
||
6
|
||
7
|
||
```
|
||
|
||
### 样例输出 #1
|
||
|
||
```
|
||
1
|
||
2
|
||
1
|
||
3
|
||
2
|
||
3
|
||
1
|
||
```
|
||
|
||
## 样例 #2
|
||
|
||
### 样例输入 #2
|
||
|
||
```
|
||
100 10
|
||
43
|
||
172
|
||
169
|
||
64
|
||
196
|
||
56
|
||
63
|
||
185
|
||
27
|
||
36
|
||
```
|
||
|
||
### 样例输出 #2
|
||
|
||
```
|
||
20
|
||
39
|
||
83
|
||
30
|
||
98
|
||
52
|
||
30
|
||
92
|
||
89
|
||
246
|
||
```
|
||
|
||
## 样例 #3
|
||
|
||
### 样例输入 #3
|
||
|
||
```
|
||
见下发样例
|
||
```
|
||
|
||
### 样例输出 #3
|
||
|
||
```
|
||
|
||
```
|
||
|
||
## 提示
|
||
|
||
对于所有数据,$1\le n,q \le 10^6, 1\le t\le 2n-1$
|
||
|
||
子任务1(20分):$n,q\le 1000$
|
||
|
||
子任务2(20分):$n,q\le 10000$
|
||
|
||
子任务3(60分):无特殊限制 |