郑厂长系列故事——体检

Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 1097    Accepted Submission(s): 596

Problem Description
  郑厂长不是正厂长
  也不是副厂长
  他根本就不是厂长
  只是公司的一个码农
  
  郑厂长所在的腾讯公司每一年都要组织员工体检,比如量身高体重、测血压之类的,今年也不例外。
  这次总共有N位员工接受体检,并且每个员工都需要做K个项目的检查才算完成整个体检的流程。现在来了M个医生为员工做身体检查,并且每一位医生都带齐了检查这K个项目的器材来(也就是说每个医生都能进行这K个项目中的任意一项检查)。
  体检的详细流程是这样的:
 
 公司事先制定好了M份体检单,每个医生手上都各自拿到一份体检单,上面已经安排好了检查的次序,以及每一次检查所对应的员工和项目。每个医生按照体检单
上的次序为相应的员工做相应的项目检查。医生拿到的体检单上的名单也可以是空的,就是这个医生不需要检查任何员工的任何项目。
  当然,制定出的
这M份体检单不能有问题存在,否则就会有混乱的情况发生。按照常理来说,同一个医生在同一时间只能为一个员工做一个项目的检查。另外,同一个员工在同一时
间也只能进行一个项目的检查,当然,不同的医生或不同的员工可以在同一时间进行项目检查。现在假设每个员工的每个项目的检查时间都是一分钟(其它时间花费
忽略不计,只考虑项目检查工作所花费的一分钟)。
  公司希望体检的工作越快完成越好,由于郑厂长大学期间曾经是一个ACMer,所以公司就将体检的安排工作交给了他,他需要计算出最快需要多少分钟能完成所有员工的体检工作。
 
Input
输入的第一行为一个正整数T,表示有T组测试数据;
接下去有T组测试数据,每组测试数据占一行,包含三个整数N,K,M,N表示员工的人数,K表示体检的项目数,M表示医生的人数。

[Technical Specification]
T<=1000
1<=N<=100
1<=K<=10
1<=M<=100

 
Output
对于每组数据,输出一个整数,表示最快需要多少分钟才能完成所有员工的体检工作。
 
Sample Input
2
2 1 1
3 2 2
 
Sample Output
2
3

Hint

对于第二组数据体检单的安排可以是如下情况:
第1个医生的体检单:员工A的项目1、员工A的项目2、员工B的项目2;
第2个医生的体检单:员工B的项目1、员工C的项目1、员工C的项目2。
第一分钟:第1个医生检查员工A的项目1,而第2个医生检查员工B的项目1;
第二分钟:第1个医生检查员工A的项目2,而第2个医生检查员工C的项目1;
第三分钟:第1个医生检查员工B的项目2,而第2个医生检查员工C的项目2;
这样就只需要3分钟即可完成体检工作。

 
Source
 
题目其实不是很水的,关键在于这道题的事项,相当于一道机器调度问题,(个人感觉特别想流水线问题的简化)
分析一下这道题的态势,只要尽可能的使m(不管是医生还是机器)处于一种饱和状态下运行即可。
那么对于 n<=m的情况,其实分析就可以知道,只需要k分钟。
那么对于相对于复杂一点的n>m,我们就要考虑较多的情况。其实手写一个列子就可以很清楚的知道了:
比如:   4 4 3
       4  4 4 4  面对三台机器:
1分钟: 3 3 3 4
2 分钟:2 2 3 3
3 分钟: 1 2 2 2
4 分钟: 1 1 1 1
5分钟:  1 0 0 0
6分钟: 0 0 0 0  所以结果为 6分钟
不知道发现没有,其实周期是 n  同时项目剩余未k-m;
然后我们其实可以得出
if n*k%m!=0
  (n*k)/m +1;
else 
   (n*k)/m
 
当然你也可以去模拟计算....
代码:
 #include<cstdio>
int main()
{
int t,n,m,k;
scanf("%d",&t);
while(t--){
scanf("%d%d%d",&n,&k,&m);
int ans=;
if((n*k)%m) ans=;
if(n>=m)printf("%d\n",ans+((n*k)/m));
else printf("%d\n",k);
}
return ;
}

HDU----(4519)郑厂长系列故事——体检的更多相关文章

  1. 郑厂长系列故事——体检(hdu 4519)

    郑厂长系列故事--体检 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total S ...

  2. HDU 4539郑厂长系列故事――排兵布阵(状压DP)

    HDU 4539  郑厂长系列故事――排兵布阵 基础的状压DP,首先记录先每一行可取的所哟状态(一行里互不冲突的大概160个状态), 直接套了一个4重循环居然没超时我就呵呵了 //#pragma co ...

  3. HDU 4539 郑厂长系列故事——排兵布阵

    http://acm.hdu.edu.cn/showproblem.php?pid=4539 郑厂长系列故事——排兵布阵 Time Limit: 10000/5000 MS (Java/Others) ...

  4. HDU 4529 郑厂长系列故事——N骑士问题 状压dp

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4529 郑厂长系列故事--N骑士问题 Time Limit: 6000/3000 MS (Java/O ...

  5. HDU 4539 郑厂长系列故事——排兵布阵 状压dp

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4539 郑厂长系列故事--排兵布阵 Time Limit: 10000/5000 MS (Java/O ...

  6. HDU 4539 郑厂长系列故事——排兵布阵 —— 状压DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4539 郑厂长系列故事——排兵布阵 Time Limit: 10000/5000 MS (Java/Ot ...

  7. hdu 4524 郑厂长系列故事——逃离迷宫 小水题

    郑厂长系列故事——逃离迷宫 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To ...

  8. POJ 1185 - 炮兵阵地 & HDU 4539 - 郑厂长系列故事——排兵布阵 - [状压DP]

    印象中这道题好像我曾经肝过,但是没肝出来,现在肝出来了也挺开心的 题目链接:http://poj.org/problem?id=1185 Time Limit: 2000MS Memory Limit ...

  9. HDU 4539 郑厂长系列故事――排兵布阵(曼哈顿距离)

    这虽然是中文题,然而没看懂,不懂的地方,就是在曼哈顿距离这块,网上搜索了一下,写了个程序,是测试曼哈顿距离的. 曼哈顿距离:两点(x1,y1)(x2,y2)的曼哈顿距离为|x1-x2|+|y1-y2| ...

随机推荐

  1. 【转载】ogre内存管理

    原文:ogre内存管理 OGRE内存分配策略相关文件及简述 OGRE提供了自己的内存分配策略,甚至为STL容器提供了新的分配策略,相关文件及简述如下: OgreMemoryAllocatedObjec ...

  2. [POJ3667]Hotel(线段树,区间合并)

    题目链接:http://poj.org/problem?id=3667 题意:有一个hotel有n间房子,现在有2种操作: 1 a,check in,表示入住.需要a间连续的房子.返回尽量靠左的房间编 ...

  3. Windows Internals学习笔记(五)Synchronization

    参考资料: 1. <Windows Internals> 2. 自旋锁spinlock剖析与改进 3. Lock指令前缀 4. Lock指令前缀(二) 5. Kernel Dispatch ...

  4. JMS【四】--Spring和ActiveMQ整合的完整实例

    第一篇博文JMS[一]--JMS基本概念,我们介绍了JMS的两种消息模型:点对点和发布订阅模型,以及消息被消费的两个方式:同步和异步,JMS编程模型的对象,最后说了JMS的优点. 第二篇博文JMS[二 ...

  5. HDU5785 manacher+差分数组

    用manacher算法O(n)求出所有的回文半径.有了回文半径后,就可以求出L[i]表示以i结尾的回文串的起始位置的和R[i]表示以i起始的回文串的结尾位置的和,然后就可以求出答案了,这里要注意奇偶长 ...

  6. python 脚本传递参数

    python查找指定字符 #!/usr/bin/env python import sys import re f = open("log.txt", "rb" ...

  7. Java JTable 表格 获取存储路径,文件名 ,导出excel表格

    在做计量泵上位机软件时,需要将下位机传上来的数据,存入MYSQL数据库,显示在java 上位机界面上,并能导出至电脑指定位置. 选择存储路径和文件名: // 处理另存文件的菜单 public void ...

  8. android打开,保存图片到sd卡,显示图片

    1.打开根目录下test.jpg Bitmap bm = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory().getA ...

  9. enum类型

    1.设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式: enum weekday{sun,mon,tue,wed,thu,fri,sat}; enum weekday a,b,c; ...

  10. Django中如何配置Database缓存?

    BACKEND: django.core.cache.backends.db.DatabaseCache LOCATION: 数据库表名 示例: CACHES = { 'default': { 'BA ...