hdu 1158-Employment Planning,n*n*n

2014-11-24 01:18:35 · 作者: · 浏览: 2
解题思路就不多说,动态规划。
值得提及的是题目没有给出数据范围,水过的都默认工人数目不超过1000。
我给出了n*n*n的算法,针对工人数目任意的情况。
首先,可以判断的是,每次决策之后的工人数量,肯定和从当前月开始的之后某个月的工人数量相同
如要hire,则当hire足够;如要fire,则当fire到底;
如此就可以应离散化的方法了,n*n*n。转移为o(n)
#include  
#include  
#include  
#include  
#include  
#include  
using namespace std;  
  
#define N 15  
int dp[N][N];  
int hire,sala,fire;  
int num[N];  
int disf[N];  
int pos[N];  
int main()  
{  
    int i,j,k,n,tmp;  
    while(~scanf("%d",&n) && n)  
    {  
        scanf("%d%d%d",&hire,&sala,&fire);  
        for(i=0;i