2 条题解
-
0
本题是一个非常典型的资源分配问题。 由于每台机器相互独立,互不影响,所以此题可以以机器为阶段用动态规划求解:
前 i-1 台 + 第 i 台 ===> 前 i 台
f[i][a][b] 表示前 i 台机器制造 a 个汽车,b 个火车的情况下最多可制造飞机的数量
g[i][a][b] 表示第 i 台机器制造 a 个汽车,b 个火车的情况下最多可制造飞机的数量。
则
for(int a=0;a<=mx*x;a++) for(int b=0;b<=mx*y;b++) ans=max(ans,min(a/x,min(b/y,f[n][a][b]/z)));其中 mx 为每天最多可生产的套数上限,可以预处理出来。
for(int i=1;i<=n;i++) for(int a=0;a<=mx*x;a++)//前 i 台机器制造 a 个汽车 for(int b=0;b<=mx*y;b++)//前 i 台机器制造 b 个火车 for(int a1=0;a1<=a;a1++)//第 i 台机器制造 a1 个汽车 for(int b1=0;b1<=b;b1++)//第 i 台机器制造 b1 个汽车 { }
- 1
信息
- ID
- 307
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- (无)
- 递交数
- 109
- 已通过
- 6
- 上传者