時間限制:1.0s 記憶體限制:256.0mb
試題 有n個士兵(1≤n≤26),編號依次為
a,b,c,…,佇列訓練時,指揮官要把一些士兵從高到矮一次排成一行,但現在指揮官不能直接獲得每個人的身高資訊,只能獲得「p1比p2高」這樣的比較
結果(p1、p2∈a,b,c,…,z,記為 p1> p2),如」a> b」表示a比b高。
請編一程式,根據所得到的比較結果求出一種符合條件的排隊方案。
(注:比較結果中沒有涉及的士兵不參加排隊)
輸入要求
比較結果從文字檔案中讀入(檔案由鍵盤輸入),每個比較結果在文字檔案中佔一行。
輸出要求
若輸入資料無解,列印「no answer!」資訊,否則從高到矮一次輸出每乙個士兵的編號,中間無分割符,並把結果寫入文字檔案中,檔案由鍵盤輸入:
樣例輸入
a>b
b>d
f>d
樣例輸出
afbd
1/*2問題 拓撲排序
3解題思路 使用佇列的拓撲排序解法
4坑點 1、注意吃掉換行 2、注意字元和數字的轉換 3、寫的時候注意用一種全覆蓋的方法
54、no answer!中間只有乙個空格,輸入關係中乙個大寫字母加「>」號加乙個大寫字母
65、輸入存在重複邊,注意不要增加重複的入度 7*/
8 #include9 #include10 #include11 #include12 #include13
using
namespace
std;
1415
1617
int cou,map[31][31],book[31],deg[31
];18 vectorans;
19int
toposort();
2021
intmain()
2235
36/*
for(i=0;i<31;i++)
40for(i=0;i<31;i++)
*/44
ans.clear();
45if
(toposort())
49 printf("\n"
);50}51
else
52 printf("
no answer!\n");
53return0;
54}5556
inttoposort()57
66}6768
while(!q.empty())81}
82}8384
if(t == cou) return1;
85return0;
86 }
藍橋杯 演算法提高 士兵排隊問題
試題 有 個士兵 1 26 編號依次為 佇列訓練時,指揮官要把一些士兵從高到矮一次排成一行,但現在指揮官不能直接獲得每個人的身高資訊,只能獲得 p1比p2高 這樣的比較結果 p1 p2 記為 p1 p2 如 表示 比 高。請編一程式,根據所得到的比較結果求出一種符合條件的排隊方案。注 比較結果中沒有...
士兵排隊問題 拓撲排序
演算法提高 士兵排隊問題 時間限制 1.0s 記憶體限制 256.0mb 試題 有 個士兵 1 26 編號依次為 佇列訓練時,指揮官要把一些士兵從高到矮一次排成一行,但現在指揮官不能直接獲得每個人的身高資訊,只能獲得 p1比p2高 這樣的比較結果 p1 p2 記為 p1 p2 如 表示 比 高。請編...
藍橋杯 ADV 169 演算法提高 士兵排隊問題
試題 有 個士兵 1 26 編號依次為 佇列訓練時,指揮官要把一些士兵從高到矮一次排成一行,但現在指揮官不能直接獲得每個人的身高資訊,只能獲得 p1比p2高 這樣的比較結果 p1 p2 記為 p1 p2 如 表示 比 高。請編一程式,根據所得到的比較結果求出一種符合條件的排隊方案。注 比較結果中沒有...