poj 1262 地板覆蓋問題

2021-07-22 08:58:09 字數 2200 閱讀 1179

problem

乙個地板被若干磚所覆蓋。現在請你判斷,這些磚是否恰好不重複,不遺漏的恰好覆蓋了整個地板。
input

第一行為乙個整數n,表示有n組測試資料。 

每組測試資料第一行是兩個數l, w,表示地板的長和寬(不超過40000)。

第二行是乙個數t,表示有t塊磚(1<=t<=400)。

下面t行每行是四個數,xl,yl,xh,yh,其中(xl,yl)是磚的左下角座標,(xh,yh)是磚的右上角座標。

output

每組資料輸出包含一行。 

如果輸入中磚有交叉覆蓋,則輸出」nondisjoint」

否則如果有磚超出了地板,則輸出」noncontained」

否則如果有部分地板沒有被覆蓋,則輸 出」noncovering」

否則輸出」ok」

題解

本題的關鍵盤是判斷是否有交叉覆蓋,判斷標準如下:

如果不覆蓋,c在a的右上角或b在a的左下角即可。

r.left r.right r.up r.down 表示乙個矩形r的左邊\右邊\上邊\下邊四個判斷(r1.left < r2.right) and (r2.left < r1.right) and (r1.up < r2.down) and (r2.up < r1.down)

**

var

nm,x,y,n,sum:longint;

x1,y1,x2,y2,s:array [0..401] of longint;

function

max(o,p:longint):longint;

begin

if o>p then

exit(o);

exit(p);

end;

procedure

init;

var i,j,l,t,l1,l2:longint;

f1,f2,f3:boolean;

begin

for l:=1

to nm do

begin

f1:=false; f2:=false; f3:=false;

sum:=0;

readln(x,y);

readln(n);

t:=max(x,y);

for i:=1

to n do

begin

readln(x1[i],y1[i],x2[i],y2[i]);

l1:=abs(x1[i]-x2[i]);

l2:=abs(y1[i]-y2[i]);

s[i]:=l1*l2;

sum:=sum+s[i];

if (x1[i]<0) or (x2[i]<0) or (y1[i]<0) or (y2[i]<0) then f2:=true;

if (x1[i]>t) or (x2[i]>t) or (y1[i]>t) or (y2[i]>t) then f2:=true;

end;

if sumthen f3:=true;

for i:=1

to n do

begin

if f1 then

break;

for j:=i+1

to n do

if (x1[j]>=x2[i]) or (x2[j]<=x1[i]) or (y1[j]>=y2[i]) or (y2[j]<=y1[i]) then

continue

else

begin

f1:=true;

break;

end;

end;

if f1 then writeln('nondisjoint') else

if f2 then writeln('noncontained') else

if f3 then writeln('noncovering') else

writeln('ok');

end;

end;

begin

readln(nm);

init;

end.

12 6(解構賦值)

物件的解構賦值用於從乙個物件取值,相當於將目標物件自身的所有可遍歷的 enumerable 但尚未被讀取的屬性,分配到指定的物件上面。所有的鍵和它們的值,都會拷貝到新物件上面。let x 1 y 2 z 由於解構賦值要求等號右邊是乙個物件,所以 如果等號右邊是undefined或null,就會報錯,...

1 26學習總結

把一顆色子搖6000次,統計每一面出現的次數 import random fs 0 6 列表的重複 for in range 6000 face random.randint 1,6 fs face 1 1print fs for i in range 1 7 print f 點出現了次 列表的生成...

1 26(測試總結)

1.軟體測試的目的與原則是什麼?目的 發現軟體的缺陷與漏洞,對軟體的質量進行評估,提公升軟體質量。原則 所有的軟體測試都應追溯到使用者需求。盡早地和不斷地進行軟體測試 完全測試是不可能的,測試需要終止。充分注意測試中的群集現象。程式設計師應避免檢查自己的程式。盡量避免測試的隨意性 2,測試人員在測試...