【官方题解】模拟
2024-12-10 17:28:54
发布于:浙江
11阅读
0回复
0点赞
【题目大意】
将 份代码按顺序交给 个评测机运行,每份代码都有个运行时间,第 份代码被最先结束工作的评测机运行,如果有多个评测机优先选择编号小的评测机,输出最终每一个评测机分别运行了多少份代码。
Subtask1: 100%
【算法分析】
本题考查考生的模拟能力。
我们发现数据限制了 ,所以本题我们只需要暴力对于每一份代码 都去跑一遍 找结束最早的评测机即可。
时间复杂度 O(mn) 。
【参考代码】
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,m,a[200005],b[200005];
int main(){
cin>>n>>m;
for (ll i=1,x;i<=n;i++){
cin>>x;
ll mi=1;
for (int j=1;j<=m;j++){
if (a[mi]>a[j]) mi=j;
}
b[mi]++;
a[mi]+=x;
}
for (int i=1;i<=m;i++) cout<<b[i]<<endl;
}
这里空空如也
有帮助,赞一个