HDU-4505 题解
小Q系列故事——电梯里的爱情
题目大意
电梯向上运行一层需要6秒钟,向下运行一层需要4秒钟,每开门一次需要5秒(如果有人到达才开门),并且每下一个人需要加1秒。
电梯最开始在0层,并且最后必须再回到0层才算一趟任务结束。假设在开始的时候已知电梯内的每个人要去的楼层,你能计算出完成本趟任务需要的总时间吗?
Time: 1000 ms
Memory: 32768 kB
解题思路及分析
简单思维
无论从哪层下电梯,每下一个人都要增加1秒,每开一次门增加5秒
因为最后回到0层,故每移动一层需要6+4=10秒
算出最大值(最高层数)、总人数、开门次数
根据 m x ∗ 10 + n + c n t ∗ 5 mx * 10 + n + cnt * 5 mx∗10+n+cnt∗5 算出结果
AC代码
#include <bits/stdc++.h>
using namespace std;
typedef long long llong;
int n;
int a[20];
bool vis[105];
int main()
{
int c;
scanf("%d", &c);
while (c--)
{
memset(vis, 0, sizeof(vis));
scanf("%d", &n);
int sum = 0;
int mx = -1;
int cnt = 0;
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
if (!vis[a[i]])
{
vis[a[i]] = 1;
cnt++;
}
if (a[i] > mx) mx = a[i];
}
printf("%d\n", mx * 10 + n + cnt * 5);
}
return 0;
}