线段树练习题四
题目
在平面内有一条长度为n的线段(不计入答案),可以对进行以下2种操作:
1、把从x到y的再加一条线段
2、查询从x到x+1有多少条线段
输入
第一行输入n,m
第2~m+1行,每行2个数x,y,表示从x到y再加一条线段
最后一行输入2个数,为x和x+1,查询x到x+1的线段数目
输出
输出x到x+1的线段数目
输入样例
7 2
2 5
3 6
4 5
输出样例
2
数据范围
100%满足1≤n≤100000,1≤x≤y≤n
解题思路
其实这道题就是一道线段树(emmm…看题目就知道了 ),其实就是先建好一棵树后,然后统计每个区间有多少线即可.
程序如下
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,x,y,xx,yy;
struct r
{
int l,r,sum;
}tree[400001];
void Build(int x,int l,int r)//建树
{
tree[x].l = l;
tree