T2 动物园的等待 WA0分求调


#include<bits/stdc++.h>
using namespace std;
int n,x,ans;
stack<int> s;
int main(){
  scanf("%d",&n);
  for(int i=1;i<=n;i++){
    scanf("%d",&x);
    if(i!=1&&s.top()>x) ans++;
    else ans+=s.size();
    while(!s.empty()&&s.top()<x) s.pop();
    s.push(x);
  }
  printf("%d",ans);
  return 0;
}

过了样例,感觉思路也没问题,它还不让我解锁数据 :expressionless:

图片
只要是相邻就能看到,没有身高的限制
这边建议你提前把ans设成n-1,然后遍历的时候就不考虑相邻的情况了

我觉得可能要用区间dp来做

错喽~

二分!

找到第一个比i高的人