2 条题解

  • 0
    @ 2025-7-1 16:53:48

    本题是一个非常典型的资源分配问题。 由于每台机器相互独立,互不影响,所以此题可以以机器为阶段用动态规划求解:

    前 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 个汽车
    {
    
    }
    
    • -2
      @ 2025-7-1 18:22:45

      你们好!

      我用9行,就把这道题,切掉了!

      具体思路如下:考虑最多能造出来的玩具套不能超过 sigma(w_i)/(x·t1+y·t2+z·t3),输出这个东西,这道题就切掉了。

      但是赛时我挂了20pts,原因是我没有在代码中加入m对答案的限制约束,赛后加上这一行,总共9行,就过了。

      • 1

      信息

      ID
      307
      时间
      1000ms
      内存
      256MiB
      难度
      9
      标签
      (无)
      递交数
      109
      已通过
      6
      上传者