题目链接:http://acm.upc.edu.cn/problem.php?id=2410
分析:
二分求解,DP验证。
用f[i][j]表示前i个人完成j个A任务的同时最多能完成多少B任务,f[i][j]=max(f[i-1][j-k]+x);枚举当前i完成的任务数k即可
f[i-1][j-k] 表示前i-1个人完成了j-k个A,留下k个给第i个人做。
x=(mid-k*A[i])/B[i] 表示i在做k个A后能做多少B
最后看f[n][m]>=m?如果大于那么返回真,表示当前时间可行,否则返回不可行。
代码:
<