2801
P2801 教主的魔法 题解
Question P2801 教主的魔法 有一个 \(n\) 个元素的序列 \(a\),有两种操作 M L R W 对区间 \([L,R]\) 内每个数都加 \(W\) A L R C 询问区间内有多少数字大于或等于 \(C\) Solution 一个比较经典的分块题 暴力分成 \(t\) 个块,对 ......
P2801 教主的魔法
那么怎么用分块做呢? 先看看怎么查询块内>=k的个数的操作呢? 我们可以先将这个块排好序,然后二分查找k的值就好了。 至于两边不完整的块,暴力查询还没有排序的原本序列直接找就好了 再看看怎么修改?? 对于整块,我们可以打上一个add标记,这样二分查找就要查 >= k-add 的值。 对于不完整的块, ......
Luogu P2801 教主的魔法
### [在洛谷中查看](https://www.luogu.com.cn/problem/P2801) ## $1$ 思路: #### $1.0$ 我们考虑使用分块做,但查询操作也不能预处理啊,$c$ 可是 $10^9$ 级别的。 #### $1.1$ 那么让我们来学习一下分块的找 大于/小于 $ ......
P2801 教主的魔法
#include #include #include using namespace std; const int N = 1000010; int n,m; int a[N],b[N]; int L[N],R[N],pos[N]; int add[N]; void modify (int l,in ......
P2801 教主的魔法 题解
一、题目描述: 给你一个长度为 $n$ 的序列 $a$ , 你需要进行 $m$ 次操作。 $类型\ 1\ : 将区间\ l\ 到\ r\ 的数加\ x\ 。$ $类型\ 2\ : 求区间\ l\ 到\ r\ 中有多少个数大于等于\ x\ 。$ 数据范围:$1 \le n \le 1\times 10 ......
P2801 教主的魔法
点击查看代码 ``` #include #define ls (k>1) #define int long long using namespace std; int n,m; char opt; const int N=1e6+7; int s[N=r){ maxx[k]+=c;minn[k]+= ......
题解(教主的魔法)P2801
## [题目](https://www.luogu.com.cn/problem/P2801) # 教主的魔法 ## 题目描述 教主最近学会了一种神奇的魔法,能够使人长高。于是他准备演示给 XMYZ 信息组每个英雄看。于是 $N$ 个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为 $1, 2 ......