HDU 1158 Employment Planning】的更多相关文章

题目链接 题意 : n个月,每个月都至少需要mon[i]个人来工作,然后每次雇佣工人需要给一部分钱,每个人每个月还要给工资,如果解雇人还需要给一笔钱,所以问你主管应该怎么雇佣或解雇工人才能使总花销最小. 样例解释 : 3个月,雇佣一个工人需要4钱,每个工人每个月的工资是5钱,解雇一个工人需要6钱.然后这三个月每个月需要的工人数最少分别是10人9人11人.0结束输入 3 4 5 6 10 9 11 0 主管在一开始就招10个人并且第二个月不解雇,因为解雇比他工资贵,需要花费40+50+50 = 1…
Problem地址:http://acm.hdu.edu.cn/showproblem.php?pid=1158 一道dp题,或许是我对dp的理解的还不够,看了题解才做出来,要加油了. 只能先上代码了. #include <iostream> #include <cstring> #include <cstdio> using namespace std; const int MAXN = 100 + 28; int dp[15][MAXN]; int workers[…
又一次看题解. 万事开头难,我想DP也是这样的. 呵呵,不过还是有进步的. 比如说我一开始也是打算用dp[i][j]表示第i个月份雇j个员工的最低花费,不过后面的思路就完全错了.. 不过这里还有个问题,这样开数组j开多大比较好,难道要我开2^31-1这么大? 题解里面开了1000多,也许再小一点也能过吧. 因为有可能解雇一个人的花费比较大,所以某个月可能继续雇佣他这样总的算来是最省的. 所以第i个月可能雇佣的人数是从num[i] ~ NumMax. 首先对第一个月的费用初始化,就是(雇佣+薪水)…
题意:给出n个月,雇佣一个人所需的钱hire,一个人工作一个月所需要的钱salary,解雇一个人所需要的钱fire,再给出这n个月每月1至少有num[i]个人完成工作,问完成整个工作所花费的最少的钱是多少. 用dp[i][j]表示在第i个月雇佣j个人所需要的最少花费 先考虑只解雇人和聘请人的情况 for(j=num[i];j<=sum;j++) { ])//说明雇佣了人 dp[i][j]=dp[i-][num[i-]]+j*salary+(j-num[i-])*hire; else//说明解聘了…
题意: 有一个工程需要N个月才能完成.(n<=12) 给出雇佣一个工人的费用.每个工人每个月的工资.解雇一个工人的费用. 然后给出N个月所需的最少工人人数. 问完成这个项目最少需要花多少钱. 思路: 将(i,num):[第i个月拥有num个工人 ]看成一个状态.那么就想到用DP. 看代码 代码: struct node{ int minNum, maxNum; } month[15]; int n; int hire,salary,fire; int dp[15][505]; int main(…
简单DP. #include <cstdio> #include <cstring> #include <cstdlib> #include <climits> #define MAXN 105 ][MAXN]; ]; int getMin(int a, int b) { return a<b?a:b; } int main() { int n, max, min; int i, j, k, r, tmp, ans; int hire, salary,…
题目链接: acm.hdu.edu.cn/showproblem.php?pid=1158 Employment Planning Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 6020    Accepted Submission(s): 2609 Problem Description A project manager wants…
Employment Planning Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 1158 Description A project manager wants to determine the number of the workers needed in every month. He does know the minima…
Employment Planning Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5292 Accepted Submission(s): 2262 Problem DescriptionA project manager wants to determine the number of the workers needed in eve…
Employment Planning Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4782    Accepted Submission(s): 2019 Problem Description A project manager wants to determine the number of the workers needed…