poj 3687 反向拓撲尋求字典序最小解

2021-08-29 04:04:19 字數 850 閱讀 4159

看題意可得,這道題很明顯是反向拓撲排序求解的問題,只不過反向拓撲排序求的是標籤的順序,之後還有把每個標籤所對應的質量聯絡起來就好。

**:

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

const int maxn = 210;

const int maxm = 4e4 + 10;

typedef pairpii;

struct edge

edge[maxm];

int in[maxn];

int head[maxn];

int n, m;

int cnt = 0;

void addedge(int u, int v)

; edge[cnt] = e;

head[u] = cnt++;

}void ini()

void toopu()

} if (iron.size() != n)

int pos = 1;

while (!iron.empty())

for (int i = 1; i <= n; i++)

else

printf(" %d", num[i]);

} printf("\n");

}int main()

}toopu();

} //system("pause");

return 0;

}

明天刷hdoj5638 然後後天刷poj2672拓撲這一章就可以翻篇了,然後就是做四五道線段樹的題,然後就學習新的知識,比如博弈論,樹的一些演算法。

poj 3687 拓撲排序

hiahiahia我又回來了!傳送 題意 理解題意很重要嗯 給定幾個標籤球的重量大小關係,求每個球是第幾重的 即每個球在所有球的重量中由小到大排名是多少 也可以認為是重量嘛,就是第1號位置的球重4一類的。如果存在多種可行解,就按編號小得重量盡量小輸出 重點 思路 拓撲。但是 逆序的!why?因為正序...

POJ 3687 逆向拓撲排序

題意 n個球,m個關係,a b 代表 a 比 b 輕,按編號1 n輸出每個球是第幾大,要使得編號小的球排名盡量小.例如 5 6 1 4 3 2 1號球可以是第3,4,5,6重 這裡要選第三重,那麼二號球就只能是最重的乙個了,即6.輸出答案為 3 6 5 4 1 2 思路 反向建立拓撲排序,則以重的球...

POJ 3687 逆向拓撲排序

以小球為模型,實際上就是找滿足條件的最小字典序 比如 我們有這樣一組資料 1 4 24 1 3 2意思就是1組測試樣例,4代表乙個序列,1,2,3,4 我們要做的就是調整下次序,使它滿足兩個條件。處於4號位的數字要比處於1號位的數字要小,處於3號位的數字要比處在2號位的數字小。我們隨便一想,就有兩組...