【Luogu】P1280尼克的任务(DP)】的更多相关文章

题目大意: https://www.luogu.org/problemnew/show/P1280 题解 手推一遍思路更清晰 #include <bits/stdc++.h> using namespace std; ]; bool cmp(NODE& a,NODE& b) { return a.x>b.x; } ],dp[]; /// sum[i]记录在i时间开始的事情的个数 /// dp[i]记录从i到末尾最多的空闲时间 int main() { int n,k; s…
题目描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成. 尼克的一个工作日为N分钟,从第一分钟开始到第N分钟结束.当尼克到达单位后他就开始干活.如果在同一时刻有多个任务需要完戍,尼克可以任选其中的一个来做,而其余的则由他的同事完成,反之如果只有一个任务,则该任务必需由尼克去完成,假如某些任务开始时刻尼克正在工作,则这些任务也由尼克的同事完成.如果某任务于第P分钟开始,持续时间为T分钟,则该任务将…
题目传送门 题目描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成. 尼克的一个工作日为N分钟,从第一分钟开始到第N分钟结束.当尼克到达单位后他就开始干活.如果在同一时刻有多个任务需要完成,尼克可以任选其中的一个来做,而其余的则由他的同事完成,反之如果只有一个任务,则该任务必需由尼克去完成,假如某些任务开始时刻尼克正在工作,则这些任务也由尼克的同事完成.如果某任务于第P分钟开始,持续时间为T分钟…
题目描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成. 尼克的一个工作日为 \(n\) 分钟,从第 \(1\) 分钟开始到第 \(n\) 分钟结束.当尼克到达单位后他就开始干活,公司一共有 \(k\) 个任务需要完成.如果在同一时刻有多个任务需要完成,尼克可以任选其中的一个来做,而其余的则由他的同事完成,反之如果只有一个任务,则该任务必需由尼克去完成,假如某些任务开始时刻尼克正在工作,则这些任…
思路: 倒着DP  f[i]表示i时刻的空闲时间最大值 在当前时间没有任务开始 f[i]=f[i+1]+1;    上一分钟最大空闲时间+1 在当前时间有任务开始  f[i]=max(f[i],f[i+a[sum])  //  i+a[sum]表示做完任务后的最大空闲时间  因为做任务的时候是忙着的 所以这样转移 因为 最后做的任务 不会影响前面 所以dp满足无后效性 #include<bits/stdc++.h> using namespace std; const int maxn=100…
做顺序DP做惯了,死活没想到这是个倒序DP. f[i]表示时刻i的最大空闲时.有以下两种可能. 1.时刻i没有任务.此时f[i]=f[i+1]+1; 2.时刻i有许多任务.此时f[i]=max(f[i+持续时间s). 改进了一下题解.不用排序,直接链式前向星建图!哈哈哈! 代码 #include<cstdio> #include<cctype> #include<iostream> #include<cstring> using namespace std;…
题目:https://www.luogu.org/problemnew/show/P1280 题意: 给定k个任务的开始时间和持续时间要求在n时间内完成.问如何安排工作使得休息时间最多. 思路: 用dp[i]表示i~n的时间内的最长休息时间. 每一个时间点只有两种可能:有工作or没有工作在此时开始 如果没有工作,那么只用上一个空闲时间+1就行了 如果有工作,那么也只有两种选择,做或者不做.也就是dp[i]和dp[i+mission[id].last]中选择较大者. 从后往前推是因为前面的时间点的…
题目描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成. 尼克的一个工作日为N分钟,从第一分钟开始到第N分钟结束.当尼克到达单位后他就开始干活.如果在同一时刻有多个任务需要完成,尼克可以任选其中的一个来做,而其余的则由他的同事完成,反之如果只有一个任务,则该任务必需由尼克去完成,假如某些任务开始时刻尼克正在工作,则这些任务也由尼克的同事完成.如果某任务于第P分钟开始,持续时间为T分钟,则该任务将…
题目描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成. 尼克的一个工作日为N分钟,从第一分钟开始到第N分钟结束.当尼克到达单位后他就开始干活.如果在同一时刻有多个任务需要完成,尼克可以任选其中的一个来做,而其余的则由他的同事完成,反之如果只有一个任务,则该任务必需由尼克去完成,假如某些任务开始时刻尼克正在工作,则这些任务也由尼克的同事完成.如果某任务于第P分钟开始,持续时间为T分钟,则该任务将…
题目描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成. 尼克的一个工作日为N分钟,从第一分钟开始到第N分钟结束.当尼克到达单位后他就开始干活.如果在同一时刻有多个任务需要完成,尼克可以任选其中的一个来做,而其余的则由他的同事完成,反之如果只有一个任务,则该任务必需由尼克去完成,假如某些任务开始时刻尼克正在工作,则这些任务也由尼克的同事完成.如果某任务于第P分钟开始,持续时间为T分钟,则该任务将…