題目描述 description對每乙個點和區域,如果點在這個區域裡就連一條邊。帥氣的作者將於今天下午作一次非常重要的演講。不幸的是他不是乙個非常愛整潔的人,他把自己演講要用的幻燈片隨便堆在了一起。因此,演講之前他不得不去整理這些幻燈片。作為乙個講求效率的oier,他希望盡可能簡單地完成它。帥氣的作者這次演講一共要用n張幻燈片(n<=26),這n張幻燈片按照演講要使用的順序已經用數字1~n編了號。因為幻燈片是透明的,所以我們不能一下子看清每乙個數字所對應的幻燈片。
現在我們用大寫字母a,b,c……再次把幻燈片依次編號。你的任務是編寫乙個程式,把幻燈片的數字編號和字母編號對應起來,顯然這種對應應該是唯一的;若出現多種對應的情況或是某些數字編號和字母編號對應不起來,我們稱對應是無法實現的。
輸入描述 input description
檔案的第一行只有乙個整數n,表示有n張幻燈片,接下來的n行每行包括4個整數xmin,xmax,ymin,ymax(整數之間用空格分開)為幻燈片的座標,這n張幻燈片按其在檔案中出現的順序從前到後依次編號為a,b,c……,再接下來的n行依次為n個數字編號的座標x,y,顯然在幻燈片之外是不會有數字的。
輸出描述 output description
若是對應可以實現,輸出檔案應該包括n行,每一行為乙個字母和乙個數字,中間以乙個空格隔開,並且每行以字母的公升序排列,注意輸出的字母要大寫並且定格;反之,若是對應無法實現,在檔案的第一行頂格輸出none即可。首行末無多餘的空格。
接著用類似拓撲排序的思想,度為一的點有唯一確定的答案,取出並去掉與連線它的邊。
最後檢查是否每個點都有答案即可。
#include
struct poi
a[100];
int f[60],ne[1000],to[1000],cnt[60],que[60],ans[60];
bool ok(poi s,poi p)
int main()
hd=1;
tl=0;
for (i=1;i<=2
*n;i++)
if (cnt[i]==1)
while (hd<=tl)}}
for (i=1;i<=n;i++)
if (!ans[i])
for (i=1;i<=n;i++)
printf("%c
%d\n",i+'a'-1,ans[i]-n);
}
煩人的型別轉換
一 對有關資料型別轉換的整理 int i 100 long l 2001 float f 300.2 double d 12345.119 char username 程佩君 char temp 200 char buf cstring str variant t v1 bstr t v2 一 其它...
DayTwentyThree 煩人的筆試
初始資料集的排列順序對演算法的效能無影響的演算法有 選 直接選擇排序 歸 歸併排序 堆 堆排序 影響排序演算法時間複雜度的主要原因是比較的次數 基於比較的排序演算法有 直接插入排序 氣泡排序 簡單選擇排序 希爾排序 快速排序 堆排序歸併排序 基數排序 桶排序都屬於分配式排序,且都是穩定排序演算法比較...
DayTwentyFour 煩人的筆試
resize 方法可以為陣列提前分配大小,但不分配記憶體。當乙個數在一堆數 現的次數大於整體個數的一半時 可以用以下 找出這個數 int morethanhalfnum solution vector int nums return val 構建大根堆和小根堆的 priority queue int...