zoukankan      html  css  js  c++  java
  • 题解【CF886B】Vlad and Cafes

    本题是模拟题。

    我们可以用b数组记录每个数字在a数组中出现的最后位置,然后从0到2·10^5依次寻找最后一次出现最早的数(注意是0!),最后统计输出即可。

    AC代码:

     1 #include <bits/stdc++.h>//万能头文件
     2 
     3 using namespace std;//使用标准名字空间
     4 
     5 inline int read()//快速读入
     6 {
     7     int f=1,x=0;
     8     char c=getchar();
     9 
    10     while(c<'0' || c>'9')
    11     {
    12         if(c=='-')f=-1;
    13         c=getchar();
    14     }
    15 
    16     while(c>='0' && c<='9')
    17     {
    18         x=x*10+c-'0';
    19         c=getchar();
    20     }
    21 
    22     return f*x;
    23 }
    24 
    25 int n,a[200005]/*输入数组*/,b[200005]/*存储最后一次出现的位置*/,m=200000007/*出现最早的位置*/,ans/*答案*/;
    26 
    27 int main()
    28 {
    29     n=read();//输入
    30 
    31     for(register int i=1; i<=n; i++)
    32     {
    33         a[i]=read();
    34 
    35         b[a[i]]=i;//记录a[i]出现的最晚位置
    36     }
    37 
    38     for(register int i=0; i<=200000; i++) //枚举最后一次出现最早的数,注意是从0开始!
    39     {
    40         if(b[i]>0 && b[i]<m)//如果这个数出现过且位置比当前最小值还小
    41         {
    42             m=b[i];//记录最小位置
    43 
    44             ans=i;//记录答案
    45         }
    46     }
    47 
    48     printf("%d",ans);//输出答案
    49 
    50     return 0;//结束
    51 }
    
    
  • 相关阅读:
    蒟蒻的填坑计划
    现在的状态....
    date modify
    set source
    image source
    simple auth
    net
    bridge
    iptable
    namespace
  • 原文地址:https://www.cnblogs.com/xsl19/p/10450232.html
Copyright © 2011-2022 走看看