poj 3687 拓撲排序

2021-07-11 02:23:14 字數 786 閱讀 9092

hiahiahia我又回來了!!傳送

題意:

理解題意很重要嗯

給定幾個標籤球的重量大小關係,求每個球是第幾重的(即每個球在所有球的重量中由小到大排名是多少)。也可以認為是重量嘛,就是第1號位置的球重4一類的。

如果存在多種可行解,就按編號小得重量盡量小輸出

↑↑↑重點

思路:

拓撲。

但是 逆序的!!

why?

因為正序的你不能確定,讓編號小的重量盡量小。

但是你把編號大的重量也弄大,那麼小的一定就越小啦!!

【哀家】要回家啦。。

不知道解釋清楚沒有。。

實在不行看**吧!!

#include

#include

#include

#include

using

namespace

std;

intmap[260][260];

int cnt[260];

int vis[260];

int w[260];

int n,m;

int jy;

int main()

}for(int i=n;i>=1;i--) //重量從大到小排 。

}break; }}

if(jy == 1)break;

}if(jy == 1)

else

else}}

}}

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號位的數字小。我們隨便一想,就有兩組...

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

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