HDU 2850 Load Balancing
来源:互联网 发布:java调用方法 编辑:程序博客网 时间:2024/05/20 03:41
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2850
题目大意:
怎么分配n个任务到m个服务器上使得负载尽量平衡。
思路:
将任务从大到小排序,依次放入负载最小的那个服务器中。
因为这个是特判题,找到一个答案即可,所以可以使用这个贪心。
下面是AC代码:
#include<iostream>#include<queue>#include<algorithm>using namespace std;const int maxn=100005;struct node{ int p,v; friend bool operator<(node a,node b) { return a.v>b.v;//负载小的在队首 }}a[maxn];bool cmp(node a,node b){ return a.v>b.v;}int ans[maxn];int main(){ int n,m,t; node temp; cin>>t; while(t--) { priority_queue<node>q; cin>>n>>m; for(int i=0;i<n;i++) cin>>a[i].v,a[i].p=i; for(int i=0;i<m;i++) { temp.p=i; temp.v=0; q.push(temp); } sort(a,a+n,cmp);//从大到小排序 for(int i=0;i<n;i++) { temp=q.top();q.pop(); temp.v+=a[i].v;//不断将任务放入当前负载最小的服务器 ans[a[i].p]=temp.p;//记录第i个任务放入的是第几个服务器 q.push(temp); } for(int i=0;i<n-1;i++) cout<<ans[i]<<" "; cout<<ans[n-1]<<endl; } 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
- Load Balancing
- load balancing
- Load Balancing
- Load Balancing
- Load Balancing Web Applications
- Server Load Balancing
- Apache + Tomcat + Load Balancing
- Load balancing (computing)
- Hbase Load Balancing
- Runtime Connection Load Balancing
- Load Balancing Web Applications
- List 序列化与反序列化到struts2的<s:hidden>变量
- 利用Responsive Nav.js插件制作响应式导航
- 如何合理设置hadoop相关组件的jvm Xmx
- ArcGIS教程:北京54坐标(或西安80)与WGS84的坐标转换
- 【c语言】输入3个数,要求按从小到大顺序输出
- HDU 2850 Load Balancing
- 黑马程序员——Java学习笔记 基础常识
- 【c语言】 输入一个字符,判断它是否为大写字母,如果是,将它转换成小写字母,如果不是不转换
- sql 结果折分,一行变多行
- openstack学习笔记 --- keystone 客户端管理工程,用户 和 角色
- 【c语言】有一函数:x < 0 ,y = -1;x = 0,y = 0;x > 0,y = 1,编程输入一个x值,要求输出对应的y
- HttpClient使用详解 网络爬虫
- 当我们修改WEB-INF下的任何一个配置文件的时候,如何让tomcat自动加载
- Linux 内核传绝对路径显示文件inode或目录dentry