题意:n个牛站一排,两头牛能够看见的条件是他们之间的牛都比他们小,我们知道第p头牛的高度是H,求每头牛的最大高度可能是多少
题意解析:两头牛能看见,则他们之间的牛至少比他们少1,所以用一个数列表示两头牛之间都减去1,所以这个可以用差分来表示,最后再求前缀和,非在线的话可以用差分来,在线的话就要用树状数组。
#include<iostream>
using namespace std;
int main()
{
int a,b,n,h;
for(int i=1;i<=n;i++){
cin>>a>>b;
//d[a+1]-- d[b]++
}
//求d的前缀和再加上h
return 0;
}