没人发题解我发一个
2026-04-20 20:52:25
发布于:辽宁
7阅读
0回复
0点赞
这道题就是一个枚举+贪心,代码如下:
#include<bits/stdc++.h>
typedef long long ll; // 将ll定义为long long
using namespace std;
int main(){
vector<int> a(5);
for(auto i=0;i<5;i++) cin>>a[i];
sort(a.begin(),a.end()); // 从小到大排序
ll ans=LLONG_MAX; // 寻找最小答案,将ans设为long long最大
do{ // 使用do-while遍历所有点菜顺序
ll last=0; // 此点菜顺序的最后送餐时间
for(auto t:a){ // 遍历每道菜制作时间
if(last%10 != 0){ // 如果送完餐时间不是10的倍数(当前点不了餐)
last=((last/10)+1)*10; // 向上取整
}
last += t; // 这道菜在last+t送达
}
ans = min(ans,last); // 获取最小答案
}while(next_permutation(a.begin(),a.end()));
// next_permutation:如果存在下个字典序返回true,否则返回false
cout<<ans; // 输出答案
return 0;
}
时间复杂度: (准确来说是)
空间复杂度: (准确来说是)
这里空空如也







有帮助,赞一个