有個人的家族很大,輩分關係很混亂,請你幫整理一下這種關係。給出每個人的孩子的資訊。輸出乙個序列,使得每個人的後輩都比那個人後列出
sample input
5 0
4 5 1 0
1 0
5 3 0
3 0樣例輸出 sample output
2 4 5 3 1
【因為需輸出字典序最小的因而要使用優先佇列】
#include
#include
#include
using
namespace
std;
vector
g[110];
int r[110];
int n;
int main()
}priority_queue,greater > pq;
for (int i=1;i<=n;i++)
while (!pq.empty())
}return
0;}
題目大意,輸入員工a,b要求a比b工資要高【至少高1】,
每人至少100元,求使得總獎金最少的方案
樣例輸入 sample input
2 1
1 2樣例輸出 sample output
201
dfs拓撲很水orz
#include
#include
using
namespace
std;
int n,m;
const
int maxn=50010;
vector
g[maxn];
int f[maxn];
int book[maxn];
bool dfs(int u)
else f[u]=max(f[u],f[v]+1);
}book[u]=1;
return
true;
}int main()
for (int i=1;i<=n;i++)
f[i]=100;
bool flag=true;
int ans=0;
for (int i=1;i<=n;i++)
}ans+=f[i]; //累加
}if (flag) cout
cout
<<"poor xed";
return
0;}
拓撲排序 Kahn演算法
該演算法的關鍵在於需要維護乙個入度為0的頂點的集合 每次從該集合中取出 如果要求輸出時編號小的在前,可以用優先佇列儲存集合 乙個頂點,將該頂點放入儲存結果的 list中。緊接著迴圈遍歷由該頂點引出的所有邊,從圖中移除這條邊,同時獲取該邊的另外乙個頂點,如果該頂點的入度在減去本條邊之後為0,那麼也將這...
Kahn演算法拓撲排序
1.概念及規則 規則 圖中每個頂點只出現一次。a在b前面,則不存在b在a前面的路徑。否則就會形成環 頂點的順序是 保證所有指向它的下個節點在被指節點前面 2.演算法及實現 kahn演算法 include using namespace std csont int maxn 10005 struct ...
HDU 1258 拓撲排序Kahn演算法
問題概述 有n個比賽隊,編號為從1到n,比賽結束後,裁判委員會要將所有參賽隊伍從前往後依次排名,但現在 裁 判委員會不能直接獲得每個隊的比賽成績,只知道每場比賽的結果,即p1贏p2 用p1 p2表示 這種,排名時p1在 必 須在p2之前,現在請你程式設計序確定排名 答案不止一種,按照隊伍從小到大排列...