試題
有n個士兵(1≤n≤26),編號依次為a,b,c,…,佇列訓練時,指揮官要把一些士兵從高到矮一次排成一行,但現在指揮官不能直接獲得每個人的身高資訊,只能獲得「p1比p2高」這樣的比較結果(p1、p2∈a,b,c,…,z,記為 p1>p2),如」a>b」表示a比b高。
請編一程式,根據所得到的比較結果求出一種符合條件的排隊方案。
(注:比較結果中沒有涉及的士兵不參加排隊)
輸入要求
比較結果從文字檔案中讀入(檔案由鍵盤輸入),每個比較結果在文字檔案中佔一行。
輸出要求
樣例輸入
a>b
b>d
f>d
樣例輸出
afbd
分析:高》矮,記作矮入度+1。 每次找到沒有排過隊並且入度為0的士兵,拉出來排隊,然後把緊跟後面的士兵的入度-1,一直這樣迴圈。當找不到沒排隊且入度為0的士兵,判斷:如果士兵全部排好了,正常輸出;否則出現了環,無法確定順序,輸出no answer!
#include #include #include #include using namespace std;
int main() ;
setse;
vectora[150];
memset(in, -1, sizeof(in));
string s, ans;
while (cin >> s)
while (1)
}if (cnt == 0) else
cout << "no answer!";
break;
} else
}return 0;
}
藍橋 ADV 169 士兵排隊問題
演算法提高 士兵排隊問題 試題 有 個士兵 1 26 編號依次為 佇列訓練時,指揮官要把一些士兵從高到矮一次排成一行,但現在指揮官不能直接獲得每個人的身高資訊,只能獲得 p1比p2高 這樣的比較結果 p1 p2 記為 p1 p2 如 表示 比 高。請編一程式,根據所得到的比較結果求出一種符合條件的排...
ADV 169 士兵排隊問題
試題 有 個士兵 1 26 編號依次為 佇列訓練時,指揮官要把一些士兵從高到矮一次排成一行,但現在指揮官不能直接獲得每個人的身高資訊,只能獲得 p1比p2高 這樣的比較結果 p1 p2 記為 p1 p2 如 表示 比 高。請編一程式,根據所得到的比較結果求出一種符合條件的排隊方案。注 比較結果中沒有...
藍橋杯 演算法提高 士兵排隊問題
試題 有 個士兵 1 26 編號依次為 佇列訓練時,指揮官要把一些士兵從高到矮一次排成一行,但現在指揮官不能直接獲得每個人的身高資訊,只能獲得 p1比p2高 這樣的比較結果 p1 p2 記為 p1 p2 如 表示 比 高。請編一程式,根據所得到的比較結果求出一種符合條件的排隊方案。注 比較結果中沒有...