HDU 2850 Load Balancing(优先队列)
来源:互联网 发布:pos机网络初始化失败 编辑:程序博客网 时间:2024/06/05 22:58
题意:给你 n个数分配给m部分(每部分个数不限),如何使得m部分和的差最小
思路:优先队列,和(sum)最小的优先分配。
#include<cstdio>#include<stdlib.h>#include<string.h>#include<string>#include<map>#include<cmath>#include<iostream>#include <queue>#include <stack>#include<algorithm>#include<set>using namespace std;#define INF 1e8#define eps 1e-8#define ll __int64#define maxn 26#define mol 1000000007struct node{int id;ll sum;friend bool operator<(node a,node b){return a.sum>b.sum;}}a[100005];priority_queue<node>q;int cmp(node a,node b){return a.sum>b.sum;}int main(){int t,n,m;int b[100005];scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);memset(b,0,sizeof(b));int i,j;node p;for(i=0;i<m;i++){p.id=i;p.sum=0;q.push(p);}for(i=0;i<n;i++){scanf("%I64d",&a[i].sum);a[i].id=i;}sort(a,a+n,cmp);for(i=0;i<n;i++){node u=q.top();q.pop();b[a[i].id]=u.id;u.sum+=a[i].sum;q.push(u);}printf("%d\n",n);for(i=0;i<n;i++){printf("%d",b[i]);if(i!=n-1)printf(" ");}printf("\n");while(!q.empty())q.pop();}return 0;}
0 0
- HDU 2850 Load Balancing(优先队列)
- Hdu 2850 Load Balancing (贪心 优先队列)
- hdu 2850 Load Balancing (优先队列 + 贪心)
- hdu 2850 Load Balancing
- HDU 2850 Load Balancing
- HDU-2850-Load Balancing(贪心)
- hdu 2850——Load Balancing
- hdu2850Load Balancing 贪心+优先队列
- hdu 2850(贪心+优先队列)
- 负载均衡( Load Balancing )
- Load Balancing
- load balancing
- Load Balancing
- Load Balancing
- hdu 4006 (优先队列)
- hdu 4393(优先队列)
- HDU Stones(优先队列)
- UVA 12904 Load Balancing (暴力)
- vim 配置
- 网站浏览问题
- 用友NC平台之基本概念解析(一)
- 滚动条
- getAttribute()与 getParameter()的区别
- HDU 2850 Load Balancing(优先队列)
- C++中string型字符串的使用示例
- 再次深入分析不可重入函数---请小心使用localtime函数
- SqlServer2012不支持Compute语句
- 数据结构基础---卡牌游戏
- makefile的10个关键知识点
- HDU 1085 Holding Bin-Laden Captive! (母函数)
- 线程安全
- 由LayoutId获得对应的View