D.Bad Prices(codeforces1213/B)

题意:求坏天,即求该天之后有没有比该天价格更低的一天,求这种天的天数。

思路:从后面往前找,有比后面这个标记的数还小的数再标记这个更小的数。

反想一下,如果从前面开始找,那得把每个数和后面所有数都对比一遍。

#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);
        }
    }
}
View Code
原文地址:https://www.cnblogs.com/DreamingBetter/p/11625231.html