獎金 構造最小拓撲序

2021-10-08 17:50:51 字數 1244 閱讀 4116

題目:

描述

mr.z心情好,決定給每位員工發獎金。公司決定以每個人本年在公司的貢獻為標準來計算他們得到獎金的多少。

於是mr.z下令召開m方會談。每位參加會談的代表提出了自己的意見:「我認為員工a的獎金應該比b高!」mr.z決定要找出一種獎金方案,滿足各位代表的意見,且同時使得總獎金數最少。每位員工獎金最少為100元。

輸入

第一行兩個整數n,m,表示員工總數和代表數;

以下m行,每行2個整數a,b,表示某個代表認為第a號員工獎金應該比第b號員工高。

n<=10000,m<=20000

輸出

若無法找到合法方案,則輸出「poor xed」;否則輸出乙個數表示最少總獎金。

樣例

輸入2 1

1 2輸出

201

思路:拓撲板子題,a比b高就讓a給b連一條邊,輸入完後直接拓撲,最後再把搜出來的拓撲序列加起來即可。

如果拓撲的基礎都沒有的話請移步此篇部落格:點我傳送

**如下:

#include

using

namespace std;

int n,m,du[

100001

],a[

1000010

],cnt,ans;

vector<

int>v[

100010];

void

topo()

}//最開始入度為0的點放進佇列

// int num=0;

while

(!q.

empty()

) a[v[u]

[i]]

=max

(a[v[u]

[i]]

,a[u]+1

);//如果有兩條邊連向這個點,要選高的才能滿足兩條邊,保證拓撲序。}}

}int

main()

for(

int i=

1;i<=n;i++

)topo()

;if(cnt!=n)

//沒訪問到n次代表整個圖不是拓撲序

for(

int i=

1;i<=n;i++)

cout

}

獎金 拓撲排序

由於公司在2013年的銷售業務成績優秀,公司總經理心情大好,決定給每位員工發獎金。公司決定以每個人本年在公司的貢獻為標準來計算他們得到獎金的多少。於是總經理下令召開 m 方會談。每位參加會談的代表提出了自己的意見 我認為員工 a 的獎金應該比 b 高!總經理決定要找出一種獎金方案,滿足各位代表的意見...

拓撲排序 獎金

由於無敵的凡凡在2005年世界英俊帥氣男總決選中勝出,yali company總經理mr.z心情好,決定給每位員工發獎金。公司決定以每個人本年在公司的貢獻為標準來計算他們得到獎金的多少。於是mr.z下令召開 mm 方會談。每位參加會談的代表提出了自己的意見 我認為員工 aa 的獎金應該比 bb 高!...

TCS 獎金 拓撲

給每位員工發獎金。參加會談的m位代表提出了自己的意見 我認為員工a的獎金應該比b高!請找出一種獎金方案,滿足各位代表的意見,且同時使得總獎金數最少。每位員工獎金最少為100元。第一行兩個整數n,m,表示員工總數和代表數 以下m行,每行2個整數a,b,表示某個代表認為第a號員工獎金應該比第b號員工高。...