尼克的工作安排
2014-03-04 19:29
127 查看
问题描述:
尼克的一个工作日为N分钟,从第一分钟开始到第N分钟结束。当尼克到达单位后他就开始干活。如果在同一时刻有多个任务需要完戍,尼克可以任选其中的一个来做,而其余的则由他的同事完成,反之如果只有一个任务,则该任务必需由尼克去完成,假如某些任务开始时刻尼克正在工作,则这些任务也由尼克的同事完成。如果某任务于第P分钟开始,持续时间为T分钟,则该任务将在第P+T-1分钟结束。
写一个程序计算尼克应该如何选取任务,才能获得最大的空暇时间。
解题思路:
这是一道比较简单的动态规划问题。以样例来分析,声明F数组,F[i]表示从i分钟到最后可以休息的最大空暇时间。倒着推。显然F[15]=1。F[14]=2。……到F[11]时,因为第11分钟有任务,那么他需要去做,做到第11+5-1分钟结束。那么F[11]=F[11+5],即做完后的那一分钟。边界条件是F[N+1]=0。如果某一分钟有许多任务时,那么先假设他做了任意一个任务,然后再试试这一分钟的其他任务看是不是空闲更大。t[x]表示第x个任务用的时间。
if F[i+t[x]]>F[i] then F[i]:=F[i+t[x]]如果做第x个任务可以休息更多则做第x个任务。
代码:
代码没找到……找了一个之前写的pascal代码
var i,n,k,x:longitn;
p,t,f:array[0..10005]of longint;
begin
read(n,k);
x:=k;
fori:=1 to k do read(p[i],t[i]);
for i:=n downto 1 do
if i>p[x] then f[i]:=f[i+1]+1 else
begin
f[i]:=f[i+t[x]];
x:=x-1;
while i=p[x] do
begin
if f[i+t[x]]>f[i] then f[i]:=f[i+t[x]];
x:=x-1;
end;
end;
write(f[1]);
end.
尼克的一个工作日为N分钟,从第一分钟开始到第N分钟结束。当尼克到达单位后他就开始干活。如果在同一时刻有多个任务需要完戍,尼克可以任选其中的一个来做,而其余的则由他的同事完成,反之如果只有一个任务,则该任务必需由尼克去完成,假如某些任务开始时刻尼克正在工作,则这些任务也由尼克的同事完成。如果某任务于第P分钟开始,持续时间为T分钟,则该任务将在第P+T-1分钟结束。
写一个程序计算尼克应该如何选取任务,才能获得最大的空暇时间。
解题思路:
这是一道比较简单的动态规划问题。以样例来分析,声明F数组,F[i]表示从i分钟到最后可以休息的最大空暇时间。倒着推。显然F[15]=1。F[14]=2。……到F[11]时,因为第11分钟有任务,那么他需要去做,做到第11+5-1分钟结束。那么F[11]=F[11+5],即做完后的那一分钟。边界条件是F[N+1]=0。如果某一分钟有许多任务时,那么先假设他做了任意一个任务,然后再试试这一分钟的其他任务看是不是空闲更大。t[x]表示第x个任务用的时间。
if F[i+t[x]]>F[i] then F[i]:=F[i+t[x]]如果做第x个任务可以休息更多则做第x个任务。
代码:
代码没找到……找了一个之前写的pascal代码
var i,n,k,x:longitn;
p,t,f:array[0..10005]of longint;
begin
read(n,k);
x:=k;
fori:=1 to k do read(p[i],t[i]);
for i:=n downto 1 do
if i>p[x] then f[i]:=f[i+1]+1 else
begin
f[i]:=f[i+t[x]];
x:=x-1;
while i=p[x] do
begin
if f[i+t[x]]>f[i] then f[i]:=f[i+t[x]];
x:=x-1;
end;
end;
write(f[1]);
end.
相关文章推荐
- [原创] 我的生活我安排,我的调度我做主!——介绍一个 日程安排/工作计划/任务调度 的Scheduling组件。(一)
- 在工作中细致安排,让同事找到提升自豪感的机会。
- 2013-09-09工作安排
- 【bzoj1572】[Usaco2009 Open]工作安排Job 贪心+堆
- 【bzoj1572/Usaco2009 Open】工作安排Job——优先队列
- 安排工作计划方法
- 谈一谈SEO人员的一天工作安排!
- 外企IT工作调动交接安排
- 应届生入职工作安排
- 算法编程题积累(1)——网易笔试"工程师工作安排“问题
- 大二前期工作计划以及近期具体安排
- [Usaco2009 Open]工作安排Job
- 2245: [SDOI2011]工作安排
- USACO1572[Usaco2009 Open]工作安排Job
- 下阶段工作计划安排
- 综合布线工作组2008年上半年技术课题工作安排会议通知
- bzoj2245 [SDOI2011]工作安排
- BZOJ2245 [SDOI2011]工作安排
- BZOJ2245: [SDOI2011]工作安排
- 如何养成好的习惯,避免在压力下,乱了阵脚,将工作安排遗忘了!