HDU----(4519)郑厂长系列故事——体检

郑厂长系列故事——体检

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

2013腾讯编程马拉松初赛第三场(3月23日)

题目其实不是很水的,关键在于这道题的事项,相当于一道机器调度问题,(个人感觉特别想流水线问题的简化)

分析一下这道题的态势,只要尽可能的使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

当然你也可以去模拟计算....

代码:

 1 #include<cstdio>
 2 int main()
 3 {
 4  int t,n,m,k;
 5  scanf("%d",&t);
 6  while(t--){
 7   scanf("%d%d%d",&n,&k,&m);
 8   int ans=0;
 9   if((n*k)%m) ans=1;
10  if(n>=m)printf("%d\n",ans+((n*k)/m));
11  else printf("%d\n",k);
12  }
13  return 0;
14 }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据挖掘DT机器学习

如何处理 Python 入门难以进步的现象?

问题: 如何处理 Python 入门难以进步的现象? 看视频看呀看呀看, 看完了,基础的都懂了 然后就想写点东西 可是无从下手呀,我以为基础不扎实,又去看视...

3784
来自专栏互联网开发者交流社区

JAVA学习之路:不走弯路,就是捷径

1844
来自专栏Java职业技术分享

「官宣」——微博瘫痪,新浪程序员哭苦我想开溜!

我们都知道,在10月16号这一天,大家常玩微博的小伙伴都发现微博又陷入到了突然的瘫痪之中,这可是让大家急坏了。好多网友都说,明明就是想吃一下赵丽颖还有冯绍峰的瓜...

1070
来自专栏腾讯大数据的专栏

致那些年我们回不去的六一——腾讯大数据六一儿童节特别数据报告

尽管初心还在,记忆尤存,有些时光却是再也无法回头。又是一年六一,腾讯大数据和你一起,追忆那些年,我们回不去的儿童节。 ? ? ? ? ? ? ? ? 更多大数...

2096
来自专栏听Allen瞎扯淡

25分钟改变你的工作效率:番茄工作法

少年,你是不是每5分钟就会拿起一次手机?你是不是每天忙忙碌碌但最后好像什么也没干?你是不是日复一日的加班感觉身体被掏空?

961
来自专栏我是攻城师

如何学好一门编程语言?

4805
来自专栏Java技术栈

Java程序员必看的 13 本 Java 书籍!

毕竟,书是学习的海洋呢!So,Java程序员你们准备好了吗?双手奉上Java程序员必读之热门书单。

2394
来自专栏大数据钻研

统一回复《怎么学JavaScript?》

于时不时,有同学私信问我怎么学前端的问题。 这里统一回复一下,如下次再遇到问我此问题同学,就直接把本文链接地址发给你了。 首先说句题外话。关于有人管我叫大神的...

3175
来自专栏封碎

十条不错的编程观点 博客分类: 经典文章转载 编程设计模式面试Google框架

在Stack Overflow 上 有这样的一个贴子《What’s your most controversial programming opinion? ...

440
来自专栏知晓程序

想让微信更好玩?这些新出炉的小程序,你一定要试试 | 晓榜 #27

如果你也想做一张「我们是谁」的爆笑图片,这里有一款小程序能帮你一键生成,不懂 PS 也能轻松作图。

732

扫码关注云+社区