• qsc oj-17 喵哈哈村的排队


    http://qscoj.cn/problem/17/

    喵哈哈村的排队

    有一堆喵哈哈村的村民们在排队,他们从队列的尾部开始标号,标号为1的村民站在最后面,标号为n的村民站在队列的最前面,而且每个村民都拥有一个智商值a[i]。

    这些村民有时候会觉得不开心,因为他们觉得凭什么一个智商比他低的人,可以站在他的前面!现在对于每个村民,他们都想知道,在他前面,智商比他低,离他最远的距离是多少。

    第一行n,表示有n只咸鱼
    第二行n个整数,表示每个村民的智商值a[i].
    n<=200000 1<=a[i]<=1000000000

    对于每个村民,输出智商比他的,且离他最远的距离是多少,如果没有输出-1

    复制
    6
    10 8 5 3 50 45
    2 1 0 -1 0 -1
     1 #pragma comment(linker, "/STACK:1024000000,1024000000")
     2 #include<iostream>
     3 #include<cstdio>
     4 #include<cmath>
     5 #include<string>
     6 #include<queue>
     7 #include<algorithm>
     8 #include<stack>
     9 #include<cstring>
    10 #include<vector>
    11 #include<list>
    12 #include<set>
    13 #include<map>
    14 using namespace std;
    15 #define ll long long
    16 #define pi (4*atan(1.0))
    17 #define eps 1e-14
    18 #define bug(x)  cout<<"bug"<<x<<endl;
    19 const int N=1e5+10,M=1e6+10,inf=2147483647;
    20 const ll INF=1e18+10,mod=2147493647;
    21 int a[N];
    22 int r[N];
    23 int main()
    24 {
    25     int n;
    26     while(~scanf("%d",&n))
    27     {
    28         for(int i=1;i<=n;i++)
    29             scanf("%d",&a[i]);
    30         r[n]=a[n];
    31         for(int i=n-1;i>=1;i--)
    32             r[i]=min(r[i+1],a[i]);
    33         for(int i=1;i<=n;i++)
    34         {
    35             int st=i+1;
    36             int en=n,ans=-1;
    37             while(st<=en)
    38             {
    39                 int mid=(st+en)>>1;
    40                 if(a[i]>r[mid])
    41                 {
    42                     st=mid+1;
    43                     ans=mid;
    44                 }
    45                 else
    46                     en=mid-1;
    47             }
    48             if(ans==-1)
    49                 printf("-1");
    50             else
    51                 printf("%d",ans-i-1);
    52             printf("%c",((i==n)?'
    ':' '));
    53         }
    54     }
    55     return 0;
    56 }
  • 相关阅读:
    dubbo 学习
    JSTL 实现 为Select赋多个值
    Spring MVC 单元测试Demo
    IDEA git commit push revert
    高并发处理
    Redis Expire TTL命令
    Redis 原子操作INCR
    Redis 安装
    慢日志查询
    angularJs 处理多选框(checkbox)
  • 原文地址:https://www.cnblogs.com/YingZhixin/p/6506333.html
Copyright © 2020-2023  润新知