📄 fishing1.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 + -