1 条题解

  • 0
    @ 2025-2-14 21:20:39

    C++ :

    #include<iostream>
    #include<algorithm>
    using namespace std;
    const int N(5005);
    int t[N],f[N],c[N];
    //ifstream cin("batch.in");
    //ofstream cout("batch.out");
    int main()
    {
        int n,s;
        cin>>n>>s;
        for (int i=1;i<=n;i++)
        {
            cin>>t[i]>>f[i];
            t[i]+=t[i-1];
            f[i]+=f[i-1];
        }
        fill(c+1,c+n+1,0x7fffffff); 
        for (int k=1;k<=n;k++)
            for (int i=1;i<=k;i++)
                c[k]=min(c[k],c[i-1]+s*(f[n]-f[i-1])+t[k]*(f[k]-f[i-1]));
        cout<<c[n]<<endl;
        return 0;
    }
    
    

    Pascal :

    var n,s,i,k:longint;
        t:array[0..5005]of longint;
        f:array[0..5005]of longint;
        c:array[0..5005]of longint;
    begin
         readln(n);
         readln(s);
         for i:=1 to 5004 do c[i]:=10000;
         for i:=1 to n do
         begin
           read(t[i],f[i]);
           t[i]:=t[i-1]+t[i];
           f[i]:=f[i-1]+f[i];
         end;
         for k:=1 to n do
             for i:=1 to k do
                 if(c[k]>c[i-1]+s*(f[n]-f[i-1])+t[k]*(f[k]-f[i-1]))
                 then c[k]:=c[i-1]+s*(f[n]-f[i-1])+t[k]*(f[k]-f[i-1]);
         writeln(c[n]);
         readln;
         readln;
    end.   
    
    • 1

    信息

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