確定比賽名次 拓撲解法

2021-10-21 01:38:11 字數 2097 閱讀 1291

題目描述

time limit: 1000 ms

memory limit: 256 mb

有n個比賽隊(1<=n<=500),編號依次為1,2,3,。。。。,n進行比賽,比賽結束後,裁判委員會要將所有參賽隊伍從前往後依次排名,但現在裁判委員會不能直接獲得每個隊的比賽成績,只知道每場比賽的結果,即p1贏p2,用p1,p2表示,排名時p1在p2之前。現在請你程式設計序確定排名。

輸入輸出格式

輸入描述:

輸入有若干組,每組中的第一行為二個數n(1<=n<=500),m;其中n表示隊伍的個數,m表示接著有m行的輸入資料。接下來的m行資料中,每行也有兩個整數p1,p2表示即p1隊贏了p2隊。
輸出描述:

給出乙個符合要求的排名。輸出時隊伍號之間有空格,最後一名後面沒有空格。

其他說明:符合條件的排名可能不是唯一的,此時要求輸出時編號小的隊伍在前;輸入資料保證是正確的,即輸入資料確保一定能有乙個符合要求的排名。

輸入輸出樣例

輸入樣例#:

複製

4 3

1 22 3

4 3

輸出樣例#:

複製

1 2 4 3
題目**

中山大學2023年機試題
c++

假定乙個計算機專業的學生必須完成圖3-4所列出的全部課程。在這裡,課程代表活動,學習一門課程就表示進行一項活動,學習每門課程的先決條件是學完它的全部先修課程。如學習《資料結構》課程就必須安排在學完它的兩門先修課程《離散數學》和《演算法語言》之後。學習《高等數學》課程則可以隨時安排,因為它是基礎課程,沒有先修課。若用aov網來表示這種課程安排的先後關係,則如圖3-5所示。圖中的每個頂點代表一門課程,每條有向邊代表起點對應的課程是終點對應課程的先修課。從圖中可以清楚地看出各課程之間的先修和後續的關係。如課程c5的先修課為c2,後續課程為c4和c6。

本題的思路也是這樣,得到全序之後再確保大小順序即可

迴圈結束後,若輸出的點數小於網中的頂點數,則輸出「有迴路」資訊,否則輸出的頂點序列就是拓撲序列

#include//萬能庫

using namespace std;

const int n = 510;//題目中要求資料不大於500

int n,m;

vectore[n];

vectorans;

int d[n];//記錄入度

void topshort()//標準的是bool型,本題預設都是對的,就不在意了

topshort();//拓撲排序

for(int i=0;i程式設計tips:

都相當於for(int i=0;i不過她倆之間的區別就是

在進行遍歷操作時,不加&的c:s,會複製乙個s字串。用&c:s時,是直接引用原字串進行遍歷操作。

priority_queue  qi;通過《操作符可知在整數中元素大的優先順序高。

priority_queue> a;pair的比較,先比較第乙個元素,第乙個相等比較第二個

priority_queue  , greater  > qi2;第二個引數為容器型別。第三個引數為比較函式。

struct node

int priority;

int value;

};priority_queueqn;//必須要過載運算子

node b[len];

b[0].priority = 6; b[0].value = 1;

b[1].priority = 9; b[1].value = 5;

b[2].priority = 2; b[2].value = 3;

b[3].priority = 8; b[3].value = 2;

b[4].priority = 1; b[4].value = 4;

for(i = 0; i < len; i++)

qn.push(b[i]);

cout<

A 確定比賽名次(拓撲)

點選開啟鏈結 有n個比賽隊 1 n 500 編號依次為1,2,3,n進行比賽,比賽結束後,裁判委員會要將所有參賽隊伍從前往後依次排名,但現在裁判委員會不能直接獲得每個隊的比賽成績,只知道每場比賽的結果,即p1贏p2,用p1,p2表示,排名時p1在p2之前。現在請你程式設計序確定排名。input 輸入...

拓撲排序 確定比賽名次

題目 description 有n個比賽隊 1 n 500 編號依次為1,2,3,n進行比賽,比賽結束後,裁判委員會要將所有參賽隊伍從前往後依次排名,但現在裁判委員會不能直接獲得每個隊的比賽成績,只知道每場比賽的結果,即p1贏p2,用p1,p2表示,排名時p1在p2之前。現在請你程式設計序確定排名。...

確定比賽名次 (拓撲排序)

有n個比賽隊 1 n 500 編號依次為1,2,3,n進行比賽,比賽結束後,裁判委員會要將所有參賽隊伍從前往後依次排名,但現在裁判委員會不能直接獲得每個隊的比賽成績,只知道每場比賽的結果,即p1贏p2,用p1,p2表示,排名時p1在p2之前。現在請你程式設計序確定排名。input 輸入有若干組,每組...