2 条题解

  • 0
    @ 2025-10-8 16:58:11
    #include<bits/stdc++.h>
    using namespace std;
    int n,T,k,ans,f[2000],v[1000],h[1000];
    int main()
    {
        scanf("%d%d%d",&n,&T,&k);
        for (int i=1;i<=n;i++) {
            scanf("%d%d",&v[i],&h[i]);
            for (int j=h[i];j<=T*5/4;j++)
            f[j]=max(f[j],f[j-h[i]]+v[i]);
        }
        ans=f[T];
        for (int i=1;i<=n;i++)
        if (h[i]>=k) ans=max(ans,f[(T-h[i])*5/4]+v[i]);
        printf("%d\n",ans);
        return 0;
    }
    
    • 0
      @ 2025-10-8 16:58:06
      #include<bits/stdc++.h>
      using namespace std;
      int n,T,k,ans,f[2000],v[1000],h[1000];
      int main()
      {
          scanf("%d%d%d",&n,&T,&k);
          for (int i=1;i<=n;i++) {
              scanf("%d%d",&v[i],&h[i]);
              for (int j=h[i];j<=T*5/4;j++)
              f[j]=max(f[j],f[j-h[i]]+v[i]);
          }
          ans=f[T];
          for (int i=1;i<=n;i++)
          if (h[i]>=k) ans=max(ans,f[(T-h[i])*5/4]+v[i]);
          printf("%d\n",ans);
          return 0;
      }
      • 1

      *【背包练习】奶酪塔[USACO10JAN] Cheese Towers S

      信息

      ID
      1696
      时间
      1000ms
      内存
      128MiB
      难度
      8
      标签
      递交数
      134
      已通过
      20
      上传者