POJ 1270 拓撲排序(刪邊法)

2021-07-24 22:30:57 字數 580 閱讀 7164

直接看到這道題就感覺好做,於是愉快的wa了十發,簡單說下坑點

1. 按字典序輸出,需要開頭對陣列進行排序。

2. 中間可能不只有乙個空格,輸入需要特別處理。

坑我一晚上,心裡都快崩潰了,簡直神坑,醉了。

#include#include#include#include#include#includeusing namespace std;

const int maxn=555;

vectorg[maxn];

int in[maxn],num[maxn],cnt,a,b;//in表示入度,-1表示已被刪除

char s[maxn];

void init()

}sort(num,num+cnt);

}void change(int i,int j)//將第i個數字度數和和他相鄰的點的度數改變

{ in[num[i]]+=j;

/*for(vector::iterator it=g[num[i]].begin();it!=g[num[i]].end();it++)

in[*it]+=j;*/

for(int ii=0;ii

POJ1270 拓撲排序 DFS

題意 先給你乙個字串,讓你給他們排序 再給你一行,在這一行,每兩個就是第乙個需要在第二個前面 思路 dfs寫多了感覺好有啊,就是排序過程中可能會有多種情況。我們考慮一下怎麼排好乙個位置,這個位置可能有多個東西可以佔,那麼這些東西對於這個位置都是等價的,那麼我們可以採用深搜下 回溯來解決。其實還是蠻簡...

POJ1270 拓撲排序 DFS

題意 先給你乙個字串,讓你給他們排序 再給你一行,在這一行,每兩個就是第乙個需要在第二個前面 思路 dfs寫多了感覺好有啊,就是排序過程中可能會有多種情況。我們考慮一下怎麼排好乙個位置,這個位置可能有多個東西可以佔,那麼這些東西對於這個位置都是等價的,那麼我們可以採用深搜下 回溯來解決。其實還是蠻簡...

POJ 1094 拓撲排序

文章大意是將n個字母排序 n 26 最終必須排成鍊錶式的輸出 一旦確定或者出現環,記錄當前步數,後續輸入無視 加個拓撲排序判斷圖的總結 1 如果輸入的有向圖中的點,不存在入度為0的點,則存在迴路,反過來則不成立 2 如果入隊的點的個數小於輸入的點的個數,則肯定存在迴路 3 如果存在的入度為零的點大於...