06 2013 档案

摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1158方法:设f(n,i)表示第i个月介绍还保留着n需要的最少钱,设max需要人数最多的哪个月所要的人数,needed[i]为第i月需要的人数。 { n*hireCost + n*hireSalary; i==1 && needed[1]=lr?(hireCost*(n-lr) +n*hireSalary) :(fireCost*(lr-n) +n*hireSalary) ; | lr是上个剩余的人数} );i>1 && needed[i]#include//# 阅读全文
posted @ 2013-06-28 15:02 kbyd 阅读(167) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1208方法1:正向状态转移,设x,y为当前的位子,设f(x,y)为到达右下角这一目标所需要的方案数,matrix(x,y)是当前可以前进的步数:f(x,y) =matrix(x,y) == 0 ? 0:((x,y)处于目标位子 ? 1 :sum(f(x1,y1)| (x1,y1)为(x,y)这一位置横向或纵向能到达的并且在地图里的地方));原问题的解为 f(0,0)代码:#include#include#include#define max 1000001using namespace std;in 阅读全文
posted @ 2013-06-28 14:03 kbyd 阅读(151) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1723方法:根据题意,设st为传递消息开始的人,ed是接收消息的最后一个人,m为每个最多可以向后传达的人数(距离),F(st,ed)为从st到ed传递消息的方式个数,建立如下状态转移方程: {F(st,ed) = 1 ,st==ed; 0 ,st>ed; sum(F(st+i,ed)|1//#include#includeusing namespace std;int records[32][32];int t_records[32][32];in... 阅读全文
posted @ 2013-06-28 10:31 kbyd 阅读(235) 评论(0) 推荐(0) 编辑