由于Blue Mary呕心沥血的管理,Blue Mary的网络公司蒸蒸日上。现在一共拥有了n名职员,可惜没有任何的金钱和声誉。平均每名每天职员都可以给公司带来x单位金钱或者y单位声誉(名利不能双全)。并且可以花费z单位的金钱在人才交易市场发布广告招聘职员,每次发布广告三天以后就会招聘到一名职员,并且必须在发布广告并且招聘到职员的那一天才能发布下一次广告。

Blue Mary计划以最快的时间获得至少A单位金钱和至少B单位声誉,请你计算一下他至少需要多少时间才能达到他的目标。

Solution

看着是个暴力dp,但要注意转移方向。

单纯获利是,从钱少的的地方向钱多的地方转移。

发广告时,从等待天数少的向天数多的地方转移,但钱会减少。

连续发广告是,从人少向人多转移,钱会减少。

我们的枚举顺序确定了,人,等待天数,钱,名誉。

Code

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int dp[][][][],n,x,y,z,a,b,ans;
int main(){
scanf("%d%d%d%d%d%d",&n,&x,&y,&z,&a,&b);memset(dp,0x3f,sizeof(dp));
dp[n][][][]=;
ans=;
for(int i=n;i<=;++i)
for(int t=;t<=;++t)
for(int j=;j<=max(a,z);++j)
for(int k=;k<=b;++k)
if(dp[i][j][k][t]<ans)
{
if(j>=a&&k>=b)ans=min(ans,dp[i][j][k][t]);
for(int l=;l<=i;++l){
int ma=min(j+l*x,max(a,z)),mb=min(k+(i-l)*y,b);
if(!t){
dp[i][ma][mb][]=min(dp[i][ma][mb][],dp[i][j][k][]+);
if(ma>=z)dp[i][ma-z][mb][]=min(dp[i][ma-z][mb][],dp[i][j][k][]+);
}
else if(t<)
dp[i][ma][mb][t+]=min(dp[i][ma][mb][t+],dp[i][j][k][t]+);
else {
dp[i+][ma][mb][]=min(dp[i+][ma][mb][],dp[i][j][k][t]+);
dp[i+][ma-z][mb][]=min(dp[i+][ma-z][mb][],dp[i][j][k][t]+);
}
}
}
cout<<ans;
return ;
}

[JSOI2008]Blue Mary的职员分配的更多相关文章

  1. bzoj千题计划192:bzoj1569: [JSOI2008]Blue Mary的职员分配

    http://www.lydsy.com/JudgeOnline/problem.php?id=1569 dp[i][j][a][b] 表示i个职员,发广告状态为j,已有金钱a,声誉b的最少天数 j= ...

  2. BZOJ1569: [JSOI2008]Blue Mary的职员分配(dp 暴力)

    Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 483  Solved: 189[Submit][Status][Discuss] Descriptio ...

  3. [bzoj1569][JSOI2008][Blue Mary的职员分配]

    Description 由于Blue Mary呕心沥血的管理,Blue Mary的网络公司蒸蒸日上.现在一共拥有了n名职员,可惜没有任何的金钱和声誉.平均每名每天职员都可以给公司带来x单位金钱或者y单 ...

  4. bzoj1567: [JSOI2008]Blue Mary的战役地图

    将矩阵hash.s[0]忘了弄成0,输出中间过程发现了. hash.sort.判重.大概这样子的步骤吧. #include<cstdio> #include<cstring> ...

  5. 数据结构(线段树):BZOJ 1568 [JSOI2008]Blue Mary开公司

    1568: [JSOI2008]Blue Mary开公司 Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 602  Solved: 214[Submit ...

  6. BZOJ 1567: [JSOI2008]Blue Mary的战役地图( 二分答案 + hash )

    二分答案, 然后用哈希去判断... ------------------------------------------------------------------------- #include ...

  7. bzoj千题计划219:bzoj1568: [JSOI2008]Blue Mary开公司

    http://www.lydsy.com/JudgeOnline/problem.php?id=1568 写多了就觉着水了... #include<cstdio> #include< ...

  8. 【BZOJ1568】[JSOI2008]Blue Mary开公司(李超线段树)

    [BZOJ1568][JSOI2008]Blue Mary开公司(李超线段树) 题面 BZOJ 洛谷 题解 是模板题啊. #include<iostream> #include<cs ...

  9. [BZOJ 1568][JSOI2008]Blue Mary开公司

    [BZOJ 1568][JSOI2008]Blue Mary开公司 题意 \(n\) 次操作, 维护一个一次函数集合 \(S\). 有两种操作: 给定 \(b\) 和 \(k\), 向 \(S\) 中 ...

随机推荐

  1. MYSQL 创建数据库SQL

    CREATE DATABASE crm CHARACTER SET utf8 COLLATE utf8_general_ci; MySQL :: MySQL 5.7 Reference Manual ...

  2. vue传参二

    <template> <ul> <li v-for="(value,key,index) in list" :key="index" ...

  3. SQL常见问题积累

    SQL积累--仅适用于SQL Server 1.sql中,字符串保存序号,按照数字顺序进行排序 ))),) asc --householdNo 为要排序字段 2.控制小数位数 ,),,)))+'%' ...

  4. array_column函数

    <?php $arr = [ [ 'id'=>1, 'name'=>'wang', 'age'=>10 ], [ 'id'=>2, 'name'=>'yong', ...

  5. PHPWord插件详解

    一下载PHPWorld并配置项目 1.PHPWord框架文件如下: 二使用word模板并使用PHPWord生成doc文件 例如:源代码如下: <?php require_once '../PHP ...

  6. MSDN学习: 加密解密Config文件中的Sections( Encrypting and Decrypting Configuration Sections)

    https://msdn.microsoft.com/en-us/library/wfc2t3az(v=vs.100).aspx https://msdn.microsoft.com/en-us/li ...

  7. SQL之CASE WHEN用法详解[1]

    简单CASE WHEN函数: CASE SCORE WHEN 'A' THEN '优' ELSE '不及格' END CASE SCORE WHEN 'B' THEN '良' ELSE '不及格' E ...

  8. LODOP打印控件进行批量打印

    Lodop打印控件批量打印的方式:1.批量打印每页内容相同的:(1)批量打印相同内容的很多纸张,可以设置打印份数,把该内容打印出多份.2.批量打印每页不同内容的:(1)通过在一个任务中分页,循环添加页 ...

  9. PLsql链接oracle配置

    在Oracle的安装文件下查找tnsnames.ora文件 如果真的找不到路径,建议大家在Oracle安装位置全文搜索tnsnames.ora 配置格式 个人配置 下载并安装PL/SQL,成功安装后配 ...

  10. Mail.Ru Cup 2018 Round 2

    A:阅读理解. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> ...