糊塗的教授 計算幾何 拓撲排序

2021-07-11 09:31:11 字數 3603 閱讀 4807

問題描述:

陳教授 是乙個國際知名的教授, 很多單位都爭先恐後邀請他演講是乙個國際知名的教授, 很多單位都爭先恐後邀請他演講今天下午 陳教授就要 做乙個非常重要的演講。 由於陳教授年紀大了,對一些不重要的小 由於陳教授年紀大了,對一些不重要的小 事情有點糊塗,今天上午 事情有點糊塗,今天上午 事情有點糊塗,今天上午 事情有點糊塗,今天上午 他把自己做演講要用的幻燈片隨便堆放在一起。因此, 他把自己做演講要用的幻燈片隨便堆放在一起。因此, 他把自己做演講要用的幻燈片隨便堆放在一起。因此, 他把自己做演講要用的幻燈片隨便堆放在一起。因此, 他把自己做演講要用的幻燈片隨便堆放在一起。因此, 他把自己做演講要用的幻燈片隨便堆放在一起。因此, 他把自己做演講要用的幻燈片隨便堆放在一起。因此, 演講之前他不得去整理這些幻燈片。 由於時間很緊 ,他希望盡可能簡單地完成 ,他希望盡可能簡單地完成 它。情況是這樣, 它。情況是這樣, 陳教授這次演講一共要用 n張幻燈片( 張幻燈片( n<=26 ),這 ),這 ),這 n張幻燈片 按照演講要使用的順序已經數字 1,2,…,n在上面編了號。因為幻燈片是 在上面編了號。因為幻燈片是 透明的,所以我們不能一下子看清每個數字對應幻燈片。

現在我們用大寫字母 a,b,c,… 再次把幻燈片依編 上號,你的任務是寫乙個程式,把幻燈片的數字編號和母對 應起來顯然這種寫乙個程式,把幻燈片的數字編號和母對 應起來顯然這種寫乙個程式,把幻燈片的數字編號和母對 應起來顯然這種應該是唯 一的;若是出現多種對應情況或某些數字編號和母不起來,我們就稱 一的;若是出現多種對應情況或某些數字編號和母不起來,我們就稱 一的;若是出現多種對應情況或某些數字編號和母不起來,我們就稱 對應是無法實現的。

資料 輸入: 

幻燈片的情況通過乙個文字件 jiaoshou .in 輸入。檔案第一行只有個數 輸入。檔案第一行只有個數 n,表示有 ,表示有 n張幻燈片,接下來的 張幻燈片,接下來的 n行第包括 4個整數 xmin ,xmax ,ymin ,ymax (整數之間用空格分開),為幻燈片的座標,這 (整數之間用空格分開),為幻燈片的座標,這 n張幻燈片按其在輸入檔案中出 張幻燈片按其在輸入檔案中出 現的順序從前到後依次編號為 a,b,c,…再接下來的 再接下來的 n行依次為 n個數字編號 的座標 x,y,顯然在幻燈片之外是不會有數字的。

資料輸出 :

結果 輸出到 名為 jiaoshou .out 的文字件。若是對應可以實現,你輸出 檔案應該包括 n行,每一為個字母和數中間以空格隔開並且 行,每一為個字母和數中間以空格隔開並且 行,每一為個字母和數中間以空格隔開並且 行,每一為個字母和數中間以空格隔開並且

- 4 -

各行以字母的公升序排列,注意輸出要大寫並且頂格;反之若是對應無法 各行以字母的公升序排列,注意輸出要大寫並且頂格;反之若是對應無法 各行以字母的公升序排列,注意輸出要大寫並且頂格;反之若是對應無法 各行以字母的公升序排列,注意輸出要大寫並且頂格;反之若是對應無法 實現,在檔案的第一行頂格輸出 none 即可。

行首末無多餘空格輸入出樣例 輸入出樣例 輸入出樣例 1:

jiaoshou .in

46 22 10 20

4 18 6 16

8 20 2 18

10 24 4 8

9 15

19 17

11 7

21 11

jiaoshou .out

a 4b 1

c 2d 3

輸入出樣例 輸入出樣例 輸入出樣例 2:

jiaoshou .in

20 2

0 0 2

0 1 1

1jiaoshou .out

none

題目大意:

給出n個矩形和n個點,問每個點是否能唯一對應乙個矩形,並輸出方案。

題解:列舉出每個矩形包括的點(即點在矩形的橫縱座標範圍內),做一次拓撲排序,若只有唯一方案即輸出,否則輸出none

const

maxn=26;

inf='jiaoshou.in';

ouf='jiaoshou.out';

type

arr1=array[1..maxn,1..4]of longint;

arr2=array[1..maxn,1..2]of longint;

var a:array[1..maxn,1..4]of longint;

b:array[1..maxn,1..2]of longint;

n,i,j,p,k,l,l1:longint;

ans:array[1..maxn,-1..maxn]of longint;

f:array[1..maxn]of longint;

so:array[1..maxn]of longint;

procedure init;

var i,j,x1,x2,y1,y2:longint;

begin

readln(n);

for i:=1 to n do

readln(a[i,1],a[i,2],a[i,3],a[i,4]);

for i:=1 to n do

readln(b[i,1],b[i,2]);

end;

function check(i,j:longint):boolean;

begin

if (b[j,1]>=a[i,1])and(b[j,1]<=a[i,2])and(b[j,2]>=a[i,3])and(b[j,2]<=a[i,4]) then exit(true);

exit(false);

end;

begin

assign(input,inf);reset(input);

assign(output,ouf);rewrite(output);

init;

for i:=1 to n do

for j:=1 to n do

if check(i,j) then

begin

inc(ans[i,0]);

ans[i,ans[i,0]]:=j;

ans[i,-1]:=ans[i,0];

end;

p:=0;

repeat

inc(p);

for i:=1 to n do

if ans[i,-1]=1 then

for j:=1 to ans[i,0] do

if f[ans[i,j]]=0 then

begin

so[i]:=ans[i,j];

f[ans[i,j]]:=1;

for k:=1 to n do

for l:=1 to ans[k,0] do

if ans[k,l]=so[i] then dec(ans[k,-1]);

end;

until p=n;

for i:=1 to n do

if so[i]=0 then

begin

writeln('none');

close(input);close(output);

halt;

end;

for i:=1 to n do

writeln(chr(65+i-1),' ',so[i]);

close(input);close(output);

end.

糊塗的教授 拓撲排序

有n個矩陣 有些部分重疊在一起 現在有一些位置寫著一些數字,表示它原來的序號,問每乙個矩陣原來的序號 陳教授是乙個國際知名的教授,很多單位都爭先恐後邀請他演講,今天下午陳教授就要做乙個非常重要的演講。由於陳教授年紀大了,對於一些不重要的小事情有點糊塗,今天上午他把自己做演講要用的幻燈片隨便堆放在一起...

拓撲 糊塗的教授

陳教授是乙個國際知名的教授,很多單位都爭先恐後邀請他演講,今天下午陳教授就要做乙個非常重要的演講。由於陳教授年紀大了,對於一些不重要的小事情有點糊塗,今天上午他把自己做演講要用的幻燈片隨便堆放在一起。因此,演講之前他不得不去整理這些幻燈片。由於時間很緊,他希望盡可能簡單地完成它。情況是這樣,陳教授這...

ssl2654 糊塗的教授

糊塗的教授 陳教授是乙個國際知名的教授,很多單位都爭先恐後邀請他演講,今天下午陳教授就要做乙個非常重要的演講。由於陳教授年紀大了,對於一些不重要的小事情有點糊塗,今天上午他把自己做演講要用的幻燈片隨便堆放在一起。因此,演講之前他不得不去整理這些幻燈片。由於時間很緊,他希望盡可能簡單地完成它。情況是這...