洛谷:P4399 [JSOI2008]Blue Mary的职员分配

链接

代码:

#include<iostream>
using namespace std;
int n,x,y,z,A,B,Ans=INT_MAX;
void Depth_fs(int staff/*员工*/,int money/*现有钱数*/,int reput/*现有声誉*/,int Dayz/*经过天数*/,int Emcd/*招聘冷却*/)
{
if(Dayz>Ans) return;//如果已经比现存最优解要差就终止搜索 int disted=1;//已经分配的人数 (因为最后会加到n+1所以初值赋为一)
while(disted<=staff&&money<A) {//因为赚钱可以用于招聘员工所以贡献更大故而优先赚钱 (贪心思想)
disted++; money+=x;
} while(disted<=staff&&reput<B) {//剩余员工用于赚取声誉
disted++; reput+=y;
} if(money>=A&&reput>=B) {//钱和声誉都赚够了(因为如果比之前最优解的情况已经被剪掉所以这就是新的最优解)
Ans=Dayz; return;
} if(Emcd>=0) {//经过一天招聘冷却-1
Emcd--;
if(Emcd==0) {
staff++;
}
} Depth_fs(staff,money,reput,Dayz+1,Emcd);//不招聘新员工 if(money>=z&&Emcd<=0) {
Depth_fs(staff,money-z,reput,Dayz+1,3);//招聘新员工
} return;
} int main()
{
cin>>n>>x>>y>>z>>A>>B;
Depth_fs(n,0,0,1,-1);
cout<<Ans;
return 0;
}

最新文章

  1. 什么是UV?
  2. VQuery高级特性
  3. 【翻译十三】java-并发之饥饿与活锁
  4. Java 新手学习 CSS样式列表 排版 格式布局
  5. 增大VM下linux的根目录空间
  6. js跳转页面方法大全
  7. WinForm中异步加载数据并使用进度条
  8. editplus 替换换行 excel 表格 拼装sql语句技巧
  9. 使用.9.png报错 Exception raised during rendering
  10. 20160526-20160531mybatis入门进阶
  11. ubuntu安装软件
  12. opencl 和Renderscript总结
  13. php中static 静态关键字
  14. Flask 系列之 优化项目结构
  15. Day5_Py模块_1
  16. 利用Python中的mock库对Python代码进行模拟测试
  17. Linux预处理、编译、汇编、链接和运行的过程(包括一些基本的命令)
  18. netcore配置文件与发布
  19. gdb的调试常用命令
  20. 转 JS模块化简单实现

热门文章

  1. Ajax局部修改页面使用html()内置标签
  2. JZOJ 3992.Christmas
  3. 在wifi的5G频率下无法加载图片解决方法
  4. 单一资产VAR风险--基于python
  5. day11_多态&amp;抽象类&amp;接口
  6. 四种语言刷算法之47. 全排列 II
  7. CF1303F 题解
  8. linux更新cmake(无需删除旧版本)
  9. .Net 6.0:WebAPI配置跨域
  10. reportviewer的简单使用