萌新刚学oi,求助

P3088 [USACO13NOV] Crowded Cows S

```cpp #include<bits/stdc++.h> using namespace std; struct Cow{ int x,h; bool operator<(Cow a){return x<a.x;} }cow[50010]; int n,d; deque<Cow>dq; int pushleft(int x){ while(!dq.empty()&&dq.back().h<=cow[x].h)dq.pop_back(); dq.push_back(cow[x]); while(!dq.empty()&&dq.front().x+d<cow[x+1].x)dq.pop_front(); return dq.empty()?0:dq.front().h; } int pushright(int x){ while(!dq.empty()&&dq.back().h<=cow[x].h)dq.pop_back(); dq.push_back(cow[x]); while(!dq.empty()&&dq.front().x-d>cow[x-1].x)dq.pop_front(); return dq.empty()?0:dq.front().h; } bool crowd[50010]; int main(){ ios::sync_with_stdio(false); cin>>n>>d; for(int i=1;i<=n;i++)cin>>cow[i].x>>cow[i].h; sort(cow+1,cow+n+1); for(int i=1;i<n;i++)if(pushleft(i)<2*cow[i+1].h) crowd[i+1]=1; dq.clear(); for(int i=n;i>1;i--)if(pushright(i)<2*cow[i-1].h)crowd[i-1]=1; int ans=0; for(int i=2;i<n;i++)ans+=int(!crowd[i]); cout<<ans<<endl; } `````` ~~错的莫名其妙,好像没有问题~~
by conancat @ 2023-12-27 17:07:05


@[baibaieee](/user/536362)
by conancat @ 2023-12-27 17:59:51


|