侦察兵
【問(wèn)題描述】
????mxy 沉迷于一個(gè)辣雞游戲不可自拔。
????游戲地圖是一個(gè) n*n 的矩形,在每個(gè)單位格子上有一個(gè)數(shù)字,代表當(dāng)前位置的生命體
個(gè)數(shù),作為一個(gè)偵察兵,mxy 的任務(wù)是計(jì)算出她所在位置的左上角和右下角的總?cè)藬?shù)(不
包括她所在的行列)。
????注意作為一個(gè)偵察兵,mxy 是不包括在地圖上的生命體個(gè)數(shù)中的。
【輸入】
????第一行 2 個(gè)整數(shù) n 和 t。(1≤n≤1000,1≤t≤1000)
????接下來(lái) n 行,每行 n 個(gè)整數(shù)表示每個(gè)單位格子上的生命體個(gè)數(shù) a。(1≤a≤100)
????再下來(lái) t 行,每行兩個(gè)整數(shù) xi,yi,表示不同時(shí)刻 mxy 在地圖上的位置。
【輸出】
???T 行,每行一個(gè)整數(shù),表示當(dāng)前時(shí)刻 mxy 所在位置的左上角和右下角的總?cè)藬?shù)。
【輸入輸出樣例】
scout.in
4 1
0 1 2 0
3 2 0 0
1 2 3 2
0 0 0 10
3 3
scout.out
16
滿分程序:
var
n,t,i,j,x,y:longint;
a:array[0..1001,0..1001]of longint;
begin
? ? readln(n,t);
? ? for i:=1 to n do
? ? for j:=1 to n do
? ? begin
? ? ? ? read(a[i,j]);
? ? ? ? a[i,j]:=a[i,j]+a[i-1,j]+a[i,j-1]-a[i-1,j-1];
? ? end;
? ? for i:=1 to t do
? ? begin
? ? ? ? readln(x,y);
? ? ? ? writeln(a[x-1,y-1]+a[n,n]-a[x,n]-a[n,y]+a[x,y]);
? ? end;
end.
另一種80分程序:
var
n,t,i,j,x,y:longint;
tj:int64;
a:array[0..1000,0..1000]of int64;
procedure js;
var
i:longint;
begin
? ? for i:=1 to x-1 do
? ? for j:=1 to y-1 do
? ? tj:=tj+a[i,j];
? ? for i:=x+1 to n do
? ? for j:=y+1 to n do
? ? tj:=tj+a[i,j];
end;
begin
? ? fillchar(a,sizeof(a),0);
? ? readln(n,t);
? ? for i:=1 to n do
? ? begin
? ? ? ? for j:=1 to n do
? ? ? ? read(a[i,j]);
? ? ? ? readln;
? ? end;
? ? for i:=1 to t do
? ? begin
? ? ? ? readln(x,y);
? ? ? ? tj:=0;
? ? ? ? js;
? ? ? ? writeln(tj);
? ? end;
end.
轉(zhuǎn)載于:https://www.cnblogs.com/YYC-0304/p/9500110.html
總結(jié)
- 上一篇: 朋友
- 下一篇: JZOJ__Day 3:【NOIP普及模