偵察兵(特長生準備)

2021-08-01 06:17:16 字數 937 閱讀 2261

給你乙個n*n的矩陣,求(x,y)左上角和右下角的值得和。n<1000 有t個(x,y),t<1000;

不可以直接暴力,因為要列舉三個變數,就是n^3,一定會超時,然後就想到二維的字首和,在搞個字尾和。

去乙個點相加就好了,時間o(n^2+n);

const

maxn=1000;

var a,f,f1:array [0..maxn+1,0..maxn+1] of longint;

i,j,n,m,t,x,y:longint;

begin

assign(input,'scout.in'); reset(input);

assign(output,'scout.out'); rewrite(output);

readln(n,m);

for i:=1

to n do

begin

for j:=1

to n do

read(a[i,j]);

readln;

end;

for i:=1

to n do

for j:=1

to n do

f[i,j]:=f[i-1,j]+f[i,j-1]-f[i-1,j-1]+a[i,j];

for i:=n downto1do

for j:=n downto1do

f1[i,j]:=f1[i+1,j]+f1[i,j+1]-f1[i+1,j+1]+a[i,j];

for i:=1

to m do

begin

readln(x,y);

writeln(f[x-1,y-1]+f1[x+1,y+1]);

end;

close(input); close(output);

end.

買裝備(特長生準備)

n個物品,物品有物抗和魔抗還有價值,要求物抗和魔抗都到達規定值,然後價值最小。n 21 物抗 21 魔抗 79 價值 800 二維費用揹包,書上的例題 搜尋,對乙個物品只有選和不選兩種狀態,時間就是o 2 21 var i,j,n,m,x,y,k,min longint a,b,w array 1....

清兵線(準備特長生)

這題我覺得有必要多講講,題目是給了我們三個階段的分數,前四十分還是很好拿的,搜尋加點優化就好了,後面就要用到動態了。因為他說的事向左或向右殺,所以我可以認為他為了更加優化的答案就盡量的不要繞遠路,就是一路向西殺到底,或者殺到一半在回來殺右邊的。很幸運,我水到了60分,哈哈哈。講一下正解吧,首先我們要...

特長生模擬 採藥

題目大意 凡凡要去採藥,他採的藥不僅要求揹包的總空間v能放得下所採的藥,還要求藥草的總質量不能超過凡凡所能承受的範圍m。現在給出n種珍惜的藥材,對於每個藥材凡凡都會精準地目測出其質量a i 體積b i 和價值c i 求凡凡所能採到的藥材的最大價值。注意 每種藥材只有乙個。30 資料,所有藥草質量a ...