1 条题解

  • 0
    @ 2025-4-12 21:41:02

    C++ :

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int f[31000],v[30],w[30];
    int main()
    {
        int n,m;
        scanf("%d%d",&n,&m);
        for(int i=1;i<=m;i++)scanf("%d%d",&v[i],&w[i]);
        f[0]=0;
        for(int i=1;i<=m;i++)
        {
            for(int j=n;j>=v[i];j--)
            {
                f[j]=max(f[j],f[j-v[i]]+v[i]*w[i]);
            }
        }
        printf("%d\n",f[n]);
        return 0;
    }
    

    Pascal :

    var n,m,w,c,i,j:longint;
       f:array[0..100000]of longint;
    begin
      readln(n,m);
      for i:=1 to m do begin
        readln(w,c);
        c:=c*w;
        for j:= n downto w do
        if f[j-w]+c>f[j] then f[j]:=f[j-w]+c;
      end;
      for i:=2 to n do
      if f[i]>f[1] then f[1]:=f[i];
      writeln(f[1]);
    end.
    
    • 1

    信息

    ID
    1092
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者