本文主要是介绍多机调度问题 贪心策略,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
const int maxn=100;
const int inf=0x3f3f3f3f;
int a[maxn],n,m;
struct node
{int data;bool operator<(const node &a)const{return data>a.data;}
};
priority_queue<node>que;
int main()//刘哲
{cin>>n>>m;for(int i=0;i<n;i++)cin>>a[i];sort(a,a+n);for(int i=0;i<n/2;i++)swap(a[i],a[n-1-i]);int min_time=inf;if(n<=m) min_time=a[0];else{node b[maxn];for(int i=0;i<maxn;i++) b[i].data=0;for(int i=0;i<m;i++){b[i].data=a[i];que.push(b[i]);}for(int i=m;i<n;i++){node tmp=que.top();que.pop();tmp.data+=a[i];que.push(tmp);}min_time=0;while(!que.empty()){min_time=max(min_time,que.top().data);que.pop();}}cout<<min_time<<endl;return 0;
}
/*
Input:
6 3
2 5 13 15 16 20
Ouput:
28
*/
这篇关于多机调度问题 贪心策略的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!