题解 P1897 【电梯里的爱情】

恩??

没有C/C++党的桶题解???

我来一发

核心思路:

读入每个楼层,如果没有去过,肯定要为他开一次门;

然后,标记一下;

有n个人,就一定要加ns;(每个人都要下啊)

再加上从0楼~最高楼再回来的时间(上6max,下4max,共10max)

输出。

OK


让路


上AC代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#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);//输出!
}