社区讨论
为什么会超过?
P1005[NOIP 2007 提高组] 矩阵取数游戏参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mi4f0p5o
- 此快照首次捕获于
- 2025/11/18 18:13 4 个月前
- 此快照最后确认于
- 2025/11/18 18:13 4 个月前
请大神看看,为什么会超时呀
CPPvar s:qword;
n,m,i,j,k,t,max:longint;
a:array[1..80,1..80]of qword;
b:array[1..10000]of qword;
function f(k:longint):longint;
var s:qword;
i:integer;
begin
s:=1;
for i:=1 to k do s:=s*2;
f:=s;
end;
procedure try(k,x,y,t,s:longint);
begin
s:=s+b[t]*a[i,k];
if (x>y) then begin
if s>max then max:=s;
exit;
end;
try(x,x+1,y,t+1,s);
try(y,x,y-1,t+1,s);
end;
begin
readln(n,m);s:=0;
fillchar(a,sizeof(a),0);
for i:=1 to m do b[i]:=f(i);
for i:=1 to n do
begin
for j:=1 to m do read(a[i,j]);
readln;
end;
for i:=1 to n do
begin
max:=0;
try(1,2,m,1,0);
try(m,1,m-1,1,0);
s:=s+max;
end;
writeln(s);
end.
回复
共 1 条回复,欢迎继续交流。
正在加载回复...