time limit:1000ms
memory limit:65536k
由於無敵的凡凡在2023年世界英俊帥氣男總決選中勝出,yali company總經理mr.z心情好,決定給每位員工發獎金。公司決定以每個人本年在公司的貢獻為標準來計算他們得到獎金的多少。
於是mr.z下令召開m方會談。每位參加會談的代表提出了自己的意見:「我認為員工a的獎金應該比b高!」mr.z決定要找出一種獎金方案,滿足各位代表的意見,且同時使得總獎金數最少。每位員工獎金最少為100元。
兩個整數n,m,表示員工總數和代表數;
以下m行,每行2個整數a,b,表示某個代表認為第a號員工獎金應該比第b號員工高。
若無法找到合法方案,則輸出「-1」;否則輸出乙個數表示最少總獎金。
2 11 2
80%的資料滿足n<=1000,m<=2000;
100%的資料滿足n<=10000,m<=20000。
做拓撲排序
這個演算法描述如下:
1.初始化乙個int indegree儲存每乙個結點的入度。
2.對於圖中的每乙個結點的子結點,將其子結點的入度加1。
3.選取入度為0的結點開始遍歷,並將該節點加入輸出。
4.對於遍歷過的每個結點,更新其子結點的入度:將子結點的入度減1。
6.重複步驟3,直到遍歷完所有的結點。
如果無法遍歷完所有的結點,則意味著當前的圖不是有向無環圖。不存在拓撲排序。
當且僅當乙個有向圖為有向無環圖(directed acyclic graph,或稱dag)時,才能得到對應於該圖的拓撲排序。每乙個有向無環圖都至少存在一種拓撲排序。
#include
#include
#include
#include
using
namespace std;
int ans[
100010
],sum=
0,tot=
0,n,m,head[
100010
],ins[
100010];
queue<
int> q;
struct jgt
f[200010];
void
input()
return;}
void
topsort()
}}return;}
void
output()
for(i=
1;i<=n;i++
) answer+
=ans[i]
;printf
("%d"
,answer)
;return;}
intmain()
獎金 拓撲排序
由於公司在2013年的銷售業務成績優秀,公司總經理心情大好,決定給每位員工發獎金。公司決定以每個人本年在公司的貢獻為標準來計算他們得到獎金的多少。於是總經理下令召開 m 方會談。每位參加會談的代表提出了自己的意見 我認為員工 a 的獎金應該比 b 高!總經理決定要找出一種獎金方案,滿足各位代表的意見...
拓撲排序 獎金
由於無敵的凡凡在2005年世界英俊帥氣男總決選中勝出,yali company總經理mr.z心情好,決定給每位員工發獎金。公司決定以每個人本年在公司的貢獻為標準來計算他們得到獎金的多少。於是mr.z下令召開 mm 方會談。每位參加會談的代表提出了自己的意見 我認為員工 aa 的獎金應該比 bb 高!...
獎金 拓撲排序 佇列 鄰接表做法
題目描述 由於公司在2013年的銷售業務成績優秀,公司總經理心情大好,決定給每位員工發獎金。公司決定以每個人本年在公司的貢獻為標準來計算他們得到獎金的多少。於是總經理下令召開 m 方會談。每位參加會談的代表提出了自己的意見 我認為員工 a 的獎金應該比 b 高!總經理決定要找出一種獎金方案,滿足各位...