Tallest Cow POJ - 3263(差分)
程序员文章站
2022-03-06 11:58:38
...
题意:传送门
题解:这个题两种做法,第一种使用差分,考虑刚开始所有牛都是高,然后给出一组关系,相应的差分数组中的关系发生改变即可。第二种做法使用线段树lazy操作(没试)。
附上代码:
#include<iostream>
#include<set>
using namespace std;
const int N=10000+10;
int n,p,h,m,height[N],a,b;
int main()
{
cin>>n>>p>>h>>m;
height[1]=h;
set<pair<int,int> >existed;
for(int i=1;i<=m;i++){
cin>>a>>b;
if(a>b)swap(a,b);
if(!existed.count({a,b})){
existed.insert({a,b});
height[a+1]--;height[b]++;
}
}
for(int i=1;i<=n;i++){
height[i]+=height[i-1];
cout<<height[i]<<endl;
}
return 0;
}