acwing.com.cn - AcWing

Description: 一个专属于程序员的平台,为大家在漫漫的刷题之旅中,提供最优质的解答

编程 (528) 算法 (202) leetcode (44) 题解 (6) acwing (2)

Example domain paragraphs

还不会线段树的看这里: https://www.bilibili.com/video/BV1qY411n7Qs/?share_source=copy_web&vd_source=fcfe5417126b8b1ac8277353f33dc3e0

/* Author: Cai Date: 22/05/23 20:51 Description: */ #include <iostream> #include <cstring> #include <string> #include <cmath> #include <algorithm> #include <cstdio> #include <vector> #include <set> #include <map> #include <stack> #include <queue> #define endl "\n" #define lson rt<<1 #define rson rt<<1|1 #define mid (tr[rt].L+tr[rt].R)>>1 #define l tr[rt].L #define r tr[rt].R using namespace std; typedef long long ll; typedef pair<int, int> pii; const int N = 5e4 + 10; int _, n, q; struct Node { int L, R; in

对于本题需要思考两个点: 1. 首先题目要求实在 [l, r] 这个线段染色, 那么很容易能想到可能涉及到区间的插入更新操作, 也就能想到线段树; 问题在于, 如何用线段树去解决这个问题呢? 或者更具体的, 线段树的节点这么设计, 节点要这么维护?