3.鬱悶的記者
(rank.pas/c/cpp)
【題目描述】
你是乙個體育報社的記者,你接受到乙個艱難的任務:有n支足球隊參加足球比賽,現在給你一些比賽的結果,需要你給出各支球隊的排名,從1到n。
以下是給你的一些資訊:
(1)沒有平局;
(2)不同的球隊排名不能相同;
(3)對於所有滿足1<=a,第a名的球隊一定可以打敗第b名的球隊。
給你部分比賽結果,要求給出排名,並且判斷是否存在另一種排名方法滿足給你的比賽結果。
【輸入格式】
第一行輸入n(1<=n<=5000),表示球隊的數量,編號為1到n。第二行輸入m(1<=m<=100,000),表示給出的比賽場數,接下來m行,每行兩個整數x_i,y_i,表示x_i能打敗y_i。
【輸出格式】
輸出包含n+1行,前n行描述球隊的排名,第i個數表示第i名的球隊,第n+1行包含乙個整數,如果為0表示不存在其他的排名方法,否則為1表示還有其他的排名方法。
【樣例輸入輸出】
rank.in
rank.out45
1 23 1
3 23 4
4 1341
2032
2 12 321
31【資料範圍】
30%的資料 1<=n<=7,1<=m<=15
60%的資料1<=n<=100,1<=m<=2000
分析:
列舉兩個兩個點
(x1,y1)
、(x2,y2),
從圖中可以看出兩個綠色線段和兩個藍色線段分別相等
,所以有以下兩個方程:
x2-x1=y3-y1
óy3=y1+(x2-x1)
y2-y1=x1-x3
óx3=x1-(y2-y1)
(x3,y3)
求出後,可以根據同樣的方法求出
(y4,y4)
,也可以利用平行四邊形兩條對角線相交於一點得出:
x1+x4=x2+x3
y1+y4=y2+y3
從而求出
(x4,y4)
,再判斷
(x3,y3)
和(x4,y4)
是否存在就可以了
時間複雜度為
o(n^2)
再次貼**:
t075 鬱悶的記者
time limit 1 second memory limit 128 mb 問題描述 你是乙個體育報社的記者,你接受到乙個艱難的任務 有n支足球隊參加足球比賽,現在給你一些比賽的結果,需要你給出各支球 隊的排名,從1到n。以下是給你的一些資訊 1 沒有平局 2 不同的球隊排名不能相同 3 對於所...
題解 洛谷P1960 鬱悶的記者
huge texttt 日期 texttt 年 texttt 月 texttt 日 編號 texttt 演算法模擬 拓撲排序 texttt huge texttt 這是一道比較簡單的題目,我們可以使用以下簡單的模擬。本人並沒有學過拓撲排序,模擬賽做完這道題目,別人告訴我,這就是拓撲排序。因此,大家我...
鬱悶的ASP!鬱悶的EPCS!
自己畫的板子,就是因為有時候做東西,mcu fpga cpld聯調,epm240t100c5n已經不夠我用了,與其畫一塊更大資源的cpld,還不如花一塊價效比最高的fpga,於是我選擇了ep2c5t144c8n。畫了板子,投了深圳,等板子又等元器件,終於有一天萬事俱備,只欠東風,於是昨天靜下心來喊了...