枚举电梯最开始停的位置,需要注意的是底层是1层不是0层。
判断x和i的位置关系,如果x在下面,那么上班的时候需要先上去,回家的时候同理
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int n,a[101],ans=0x3f3f3f3f,t,hui;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
// freopen("data.in","r",stdin);
// freopen("data.out","w",stdout);
cin>>n;
for(int i = 1;i<=n;i++)
cin>>a[i];
for(int i = 1;i<=n;i++){
t = 0;
for(int j = 1;j<=n;j++){
t += a[j] *(i>=j?2*(i-1):2*(j-1)); //下去的花费
t += a[j] *(i>=j?2*(i-1):2*(j-1)); //上来的花费
}
ans =min(ans,t);
}
cout<<ans;
return 0;
}
本文介绍了一种枚举法解决电梯路径优化问题的算法,通过计算电梯从不同初始位置出发到各楼层上下班所需的时间,寻找最短总路径。算法考虑了实际场景中电梯底层为1层而非0层的情况。
511

被折叠的 条评论
为什么被折叠?



