⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fishing1.pas

📁 PASCAL光盘资料PASCAL光盘资料PASCAL光盘资料
💻 PAS
字号:
program fishing(input,output);{动态规划}
const maxT = 1000;
      maxF = 1000;
      maxN = 100;

type nodeP = record
                  fish,delta,time:longint;
             end;

var Fishing:array[0..maxF+1] of longint;
    Opt,tOpt:array[0..maxT] of longint;
    Pound:array[1..maxN] of nodeP;
    ans,n,t:longint;

procedure setIO;
begin
  assign(input,'fishing.in');
  reset(input);
  assign(output,'fishing.out');
  rewrite(output);
end;

procedure Init;
var i:longint;
begin
   read(n);
   for i:=1 to n do read(pound[i].fish);
   for i:=1 to n do read(pound[i].delta);
   for i:=1 to n-1 do read(pound[i+1].time);
   read(t);
   ans:=-maxlongint;
end;

procedure Doit;
var i,j,k,tmp:longint;
begin
   for i:=1 to n do
      with pound[i] do
        begin
           for j:=0 to t do tOpt[j]:=-maxlongint;
           fillchar(Fishing,sizeof(Fishing),0);
           for j:=1 to fish div delta+1 do Fishing[j]:=Fishing[j-1]+fish-(j-1)*delta;
           for j:=0 to t do
              for k:=0 to fish div delta+1 do
                 if (j+k+time)<=t then
                    begin
                        tmp:=Opt[j]+Fishing[k];
                        if tmp>tOpt[j+k+time] then tOpt[j+k+time]:=tmp;
                        if tmp>ans then ans:=tmp;
                    end;
           Opt:=tOpt;
        end;
end;

procedure Print;
begin
  writeln(ans);
  close(output);
end;

begin
  setIO;
  Init;
  Doit;
  Print;
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -