题意:求坏天,即求该天之后有没有比该天价格更低的一天,求这种天的天数。
思路:从后面往前找,有比后面这个标记的数还小的数再标记这个更小的数。
反想一下,如果从前面开始找,那得把每个数和后面所有数都对比一遍。
#include<stdio.h> #include<math.h> int main() { int t,n,a[150010],i,sum,flag; while(~scanf("%d",&t)) { while(t--) { sum=0; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=n-2,flag=a[n-1];i>=0;i--) { if(flag<a[i]) { sum++; }else if(flag>a[i]) { flag=a[i]; } } printf("%d\n",sum); } } }