题解 P1897 【电梯里的爱情 】
引领天下
2017-05-05 16:33:07
核心思路:
读入每个楼层,如果没有去过,肯定要为他开一次门;
然后,标记一下;
有 $n$ 个人,就一定要加 $n$s;(每个人都要下啊)
再加上从 $0$ 楼到最高楼再回来的时间(上 $6\max$,下 $4\max$,共 $10\max$)
输出。
上 AC 代码:
```cpp
#include <cstdio>
int n,a,ans,max;//n是人数,a是这个人要去几层,ans是答案,max是最高楼层
bool s[100000000];//楼层桶(不可思议的100000000层大楼)
int main(void){
s[0]=1;//注意!0层不需要开门!我一开始少了这句话丢了30分
scanf ("%d",&n);//读n
for (int i=0;i<n;i++){
scanf ("%d",&a);//每次读一个人
if (!s[a])ans+=5;//!s[a]意思是这个楼层还没见过,当然要开一次门啦
s[a]=1;//不管怎样,标记一下
if (a>max)max=a;//找最高楼层
}
ans+=n;//每个人都要下去,所以加的时间一定等于n
ans+=max*10;//上6下4,共10s,所以最高楼层*10
printf ("%d",ans);//输出!
}
```