题目 题意: 给定n个点,每两个相邻点之间有数的限制。现在,有q次询问。每次询问可以将区间[l+1,r]内的数 - 区间内最小值,然后ans + 此值。ans最大是多少。询问可以打乱顺序后处理。 思路: 线段树维护最小值+tag区间更新即可。 时间复杂度: O(nlogn) 代码:
#include
using namespace std;
const int N = 1e5+10;
#define int long long
int n,m,k,T;
int a[N];
int ans[Nn>>m;
n--;
for(int i=1;i>a[i];
build(1,1,n);
// for(int i=1;i
关注
打赏