2015届美团笔试
来源:互联网 发布:李明 沈超 linux 视频 编辑:程序博客网 时间:2024/05/22 11:42
m个机器、n个任务,每个机器执行任务时的时间不同,如何分配任务让机器调度使得总时间最短?
如:2 个机器 6个任务 每个机器执行任务时间分别是10min和7min
假设3 3 分,需要max(30,21) = 30
假设4 2 分, 需要max(40,14)=40
假设2 4 分,需要max(20,28) = 28
求调度策略
思路:二分,
最多需要min(t[0]...t[m-1])*的时间,最少是0;low = 0, high = n*min(t[0]...t[m-1])
取得mid,
判断 mid/t[0]+mid/t[1]+mid/t[2]+...mid/t[m-1] >= n high = mid-1;
否则 low = mid+1;
#include <iostream>using namespace std;#include <cstdio>#include <cstdlib>void ept(int t[],int m,int n){ // m台机器,n个任务 int mixx = t[0],maxx = t[0]; for(int i = 1;i < m;i++){ if(maxx < t[i]) maxx = t[i]; if(mixx > t[i]) mixx = t[i]; } if(m >= n){ printf("%d\n",maxx); }else{ int low = 0,high = n*mixx; //printf("low = %d high = %d\n",low,high); while(low <= high){ int mid = (low+high)/2; int cnt = 0; for(int i = 0;i < m;i++){ cnt += mid/t[i]; } if(cnt >= n){ high = mid - 1; }else if(cnt < n){ low = mid + 1; } } printf("%d",low); }}int main(){ int m,n; // m台机器 n个任务 int t[100]; while(scanf("%d%d",&m,&n) != EOF){ for(int i = 0;i < m;i++) scanf("%d",&t[i]); ept(t,m,n); } system("pause");}
测试样例如下:
#include <iostream>using namespace std;#include <cstdio>#include <cstdlib>void print_rotate_matrix(int s[100][100],int n){ int i; for(int j = n-1;j >= 0;j--){ i = 0; int p = j; while((i <= n-1) && (p <= n-1)){ printf("%d ",s[i][p]); i++; p++; //printf("%d %d\n",i,j); } printf("\n"); } for(int i = 1;i <= n-1;i++){ int j = 0; int p = i; while(p <= n-1 && j <= n-1){ printf("%d ",s[p][j]); p++; j++; } printf("\n"); }}int main(){ int n; int s[100][100]; while(scanf("%d",&n) != EOF){ for(int i = 0;i < n;i++){ for(int j = 0;j < n;j++) scanf("%d",&s[i][j]); } printf("\n"); print_rotate_matrix(s,n); } system("pause");}
0 0
- 2015届美团笔试
- [笔试]小米2015笔试
- 笔试2015
- 2015阿里笔试题
- 阿里2015 在线笔试
- 百度2015笔试心得
- 2015美团笔试
- 小米 面试 笔试 2015
- 百度2015年校招笔试
- 2015中兴笔试+面试
- 2015Mstar笔试题
- 2015阿里笔试题
- 2015华为上机笔试
- wap 笔试题2015
- 2015华为笔试题
- 2015年某光笔试
- 迅雷2015笔试:hash_table
- 笔试
- uva 10720(贪心)
- JAVA的StringBuffer类
- CentOS 下面搭建SVN服务器
- spring aop 整理
- Android启动浏览器
- 2015届美团笔试
- 【Axure手机原型】手机产品的规划和设计
- 黑马程序员_iso入门基础学习_OC语言day1
- ios及安卓画图形
- python中将普通对象作为 字典类(dict) 使用
- Singleton VS Monostate
- 全排列的六种算法
- Java事务(一) - 概述
- 关于子类化