AcWing 2041. 干草堆(差分)
Posted MangataTS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AcWing 2041. 干草堆(差分)相关的知识,希望对你有一定的参考价值。
题目链接
https://www.acwing.com/problem/content/2043/
思路
因为我们前面有k个区间修改操作,最后求出中位数,由于是静态的,所以我们直接使用差分维护就好啦,然后最后求一个前缀和恢复一下修改后的每个位置的值即可
代码
#include<bits/stdc++.h>
using namespace std;
const int N = 1e6+10;
int a[N];
int n;
int k,A,B;
int main()
cin>>n>>k;
while(k--)
cin>>A>>B;
a[A]++;
a[B+1]--;
int res = 0;
for(int i = 1;i <= n; ++i)
res += a[i];
a[i] = res;
sort(a+1,a+1+n);
cout<<a[n/2 + 1]<<endl;
return 0;
以上是关于AcWing 2041. 干草堆(差分)的主要内容,如果未能解决你的问题,请参考以下文章