题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=1158

题目描述:

有一家公司要完成一个课题,该课题分为n个月完成。现在知道每个月至少需要多少人手才能完成这个阶段的任务。假如说我们要聘请一个员工,那么我们就要有一定的花费(第二行的第一个数字);假如说我们解雇一个员工,那么我们也有一定的花费(第二行的第三个数字)。当然员工也是要拿工资的,每个月拿一定量的工资(假如说某个员工不干活也是拿工资的,第二行第二个数字),问你完成这个课题,最小需要花费多少钱?
样例解释:
3  //一个课题分三个月解决
4 5 6  //分别为聘请一个员工的花费、一个员工的工资、一个员工被解雇的花费
10 9 11 //第一个月至少需要10个人,第二个月至少需要9个人,第三个月至少需要11个人
输出:
199
第一个月聘请10个员工,花费:10*4+10*5(工资+聘请的费用)=90
第二个月不聘请员工(当然我们也可以解雇一个员工,当然也可以完成该阶段的任务,但是不聘请员工的做法才能达到最优解,具体你可以自己再纸上算算),花费:10*5=50(工资)
第三个月聘请一个员工,花费:10*5+4+5=59(10个人的工资+新聘请员工的工资+招聘费用)
那么总花费就是:90+50+59=199 即为最优解。
 
解题思路:在某个月我们无法直接判断究竟该雇佣多少员工,如测试数据,所以我们要用dp的思路,把每个月雇佣不同人数的最优解全部记录下来

dp[i][j]表示对于第i个阶段,保留j个人(要完成当月的任务)所需要的最少花费。j小于等于整个课题需要员工的最大额度

#include <stdio.h>
int fmax(int a,int b)
{return a>b?a:b;
}
int fmin(int a,int b)
{return a<b?a:b;
}int main()
{int C_Max_Man,C_Min_Man;int V_nBuy,V_nKeep,V_nFire;int i,j,k;int m;int V_nSumAsNow,V_nSumAsKeep,V_nSumAsChange;int V_nLast_ans;int a[13];int dp[13][150];while(scanf("%d",&m)!=EOF&&m){C_Max_Man=0;C_Min_Man=150;scanf("%d%d%d",&V_nBuy,&V_nKeep,&V_nFire);for(i=1;i<=m;i++){scanf("%d",&a[i]);C_Max_Man=fmax(a[i],C_Max_Man);C_Min_Man=fmin(a[i],C_Min_Man);}for(i=1;i<=m;i++)for(j=C_Min_Man;j<=C_Max_Man;j++){if(i==1)dp[i][j]=j*(V_nKeep+V_nBuy);else{V_nSumAsNow=V_nSumAsKeep=dp[i-1][j]+j*V_nKeep;for(k=C_Min_Man;k<=C_Max_Man;k++){if(k==j)V_nSumAsChange=V_nSumAsKeep;if(k>j)V_nSumAsChange=dp[i-1][k]+(k-j)*V_nFire+j*V_nKeep;if(k<j)V_nSumAsChange=dp[i-1][k]+(j-k)*V_nBuy+j*V_nKeep;V_nSumAsNow=fmin(V_nSumAsNow,V_nSumAsChange);}dp[i][j]=V_nSumAsNow;}if(j<a[i])dp[i][j]=99999999;}V_nLast_ans=dp[m][C_Min_Man];for(j=C_Min_Man+1;j<=C_Max_Man;j++)V_nLast_ans=fmin(V_nLast_ans,dp[m][j]);/*for(i=1;i<=m;i++){for(j=min;j<=max;j++)printf("%d ",b[i][j]);printf("\n");}*/printf("%d\n",V_nLast_ans);}
return 0;
}

动态规划——雇佣员工(hdu1158)相关推荐

  1. 面试之雇佣员工与员工过生日问题

    问题:    某大公司有这么一个规定:只要有一个员工过生日,当天所有员工全部放假一天.但在其余时候,所有员工都没有假期,必须正常上班.这个公司需要雇用多少员工,才能让公司一年内所有员工的总工作时间期望 ...

  2. 员工拒绝加班,被判赔公司1.8万!网友炸锅

    据媒体报道,扬州某公司员工王某和李某,被要求加班完成产品检验,否则公司将违约.两人为逼公司续签劳动合同拒绝加班,导致公司赔偿12万元.公司将其告上法庭,两人被判赔1.8万. 法官称,员工有权拒绝加班, ...

  3. 动态规划——How to Type(hdu2577)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2577 题目描述: 要求一个字符串输入,求按键盘的最少次数.有Caps Lock和Shift两种转换大 ...

  4. 首先请与所有现有链接到该网络共享的映射断开连接_疫情之下:该如何使用Python预测员工流失,老板直呼内行!...

    前言: 2020年初一场疫情使得众多公司面临裁员,众多员工无奈选择离职,那么该如何使用python这一编程语言分析员工流失.找出员工离开公司的原因,并学会预测谁将离开公司. 在过去,大多数的重点是&q ...

  5. 我为什么反对寄希望于内部培训提升员工技能的方法?

    在微博和博客上我已经是不止一次反对,而且是强烈反对以内部培训的名义,提升员工技能的方法了,比如这篇 员工培训之我见. 我认为常说的辅导(Coach),不应该是一个填鸭式的教育,遗憾的是,我到现在还没有 ...

  6. 京东淘汰“三类人” VS 亚马逊PIP, 企业是否有员工淘汰权?

    "996.ICU"的话题热度未减,上周,京东的一封内部信又成功引发网友围观. 1 京东内部信: 这三类人都要淘汰或协商解决掉! 有京东员工爆料称,公司又出新策(有种未经证实的说法是 ...

  7. 老板不要怪员工不忠诚,看看你和员工合作的三层境界!

    来源:百度文库 老板和员工之间合作的3层境界,一位企业家朋友跟我沟通交流,他公司最近发生这样的事情,一名多年培养起来的员工,在公司里面担任业务的骨干,最近离开公司了,离开公司不要紧,问题是他带着几个非 ...

  8. 两周后上线,老板你在开玩笑吗?

    大Boss,小Boss 大概除了马云.马化腾这样的顶级领导外,每个人都有个领导,按外企的说法,也叫 Boss. 实习生.新员工上面有一个小 Boss,管好自己的一亩三分地,为新人的成长负责:小 Bos ...

  9. 读德鲁克的《管理的实践》,我才明白,这些年,我错过了什么

    在读<管理的实践>之前,我一直坚定的认为,企业本质是追求利润,而德鲁克告诉我们,利润仅仅只是检验企业存在合理性和必要性,经济效益才能证明企业存在的价值和权威.因此,企业管理的目的,并非是追 ...

最新文章

  1. 做出仿iphone的圆角效果,以及shpe的各个属性
  2. 写数据到文件注意事项write方法
  3. 非常快的文本模式的emacs
  4. TypeError: can't pickle _thread.RLock objects
  5. javascript 刷新技巧
  6. 荣耀9X/9X Pro外观谍照曝光:屏幕设计竟大不相同
  7. 量子笔记:酉矩阵(幺正矩阵)、量子门的可逆性
  8. Pandas和Matplotlib用excel数据画双y轴折线图
  9. Verilog学习之异步复位的串联T触发器设计
  10. 计算当前是时间距离凌晨零点的时间
  11. 计算机组成第六章作业,计算机组成原理第六章作业_计算机的运算方法1
  12. 认知当下 原子世界的技术发展停滞了么
  13. 李博轩担任摄影作品有哪些?
  14. python趋势外推法
  15. 荔枝文案,水果荔枝发朋友圈文案
  16. 分享3:hanzi-writer(演示汉字笔画顺序的 JS 库)
  17. ubuntu无法使用man
  18. 2009年千万亿次超级计算机,2009年10月29日 第一台国产千万亿次超级计算机亮相...
  19. 电脑合上盖子不进入休眠模式的问题解决方案
  20. OAF控件及常见问题汇总

热门文章

  1. postgresql 重启记录_PostgreSQL 高可用:PostgreSQL复制和自动故障转移
  2. python用pip安装numpy完整命令_Python使用pip安装Numpy模块
  3. Wonder——Auggie | Education
  4. vue 前端显示图片加token_前端甩锅神器:vue中的mock使用
  5. 如何获取网页付费隐藏链接_如何将SEO变成可衡量的收入来源
  6. 服务器安装三节点RabbitMQ集群(4)
  7. Intel OpenCL + Ubuntu安装
  8. Batch Normalization标准化(精)==>一方面可以简化计算过程,一方面经过规范化处理后让数据尽可能保留原始表达能力
  9. Eclipce Luna 离线安装ADT23
  10. mysql 函数用还是不用_Mysql中日期和时间函数应用不用求人