家譜樹(拓撲排序)

2021-09-24 08:02:09 字數 1248 閱讀 3198

有個人的家族很大,輩分關係很混亂,請你幫整理一下這種關係。

給出每個人的孩子的資訊。

輸出乙個序列,使得每個人的後輩都比那個人後列出。

第1行乙個整數n(1≤n≤100),表示家族的人數;

接下來n行,第i行描述第i個人的兒子;

每行最後是0表示描述完畢。

輸出乙個序列,使得每個人的後輩都比那個人後列出;

如果有多解輸出任意一解。

5

04 5 1 0

1 05 3 0

3 0

2 4 5 3 1
陣列版 拓撲排序

ac code:

#include#include#include#include#include#include#include #include #include #include#include#include #include#include #include #define inf 0x3f3f3f3f

#define eps 0.000000001

#define maxn (int)1e5+10

using namespace std;

typedef pairpii;

int ans[101][101];

int r[101];

int c[101];

stackv;

int main()

}for(int i=1;i<=t;++i)

int num=0;

dousing namespace std;

inline int read()

while (c>='0'&&c<='9') x=(x<<3)+(x<<1)+(c^48),c=getchar();

return x*f;

}struct edgeedge[maxn];

int head[maxn],tot;

int deg[maxn];

int ans[maxn];

int k = 1;

int t;

void init()

inline void add(int from,int to)

void topsort()//拓撲排序

while(q.size())

}}int main()

}topsort();

for(int i = 1;icout<}

家譜樹(拓撲)

家譜樹 問題描述 有個人的家族很大,輩分關係很混亂,請你幫整理一下這種關係。給出每個人的孩子的資訊。輸出乙個序列,使得每個人的後輩都比那個人後列出。輸入格式 第1行乙個整數n 1 n 100 表示家族的人數。接下來n行,第i行描述第i個人的兒子。每行最後是0表示描述完畢。輸出格式 輸出乙個序列,使得...

家譜樹 樹的利用

include include include include define maxsize 20 typedef struct treenode treenode treenode tree void createtree treenode t 建立乙個家譜 void printtree tree...

字典樹 拓撲排序 第一!

bessie一直在研究字串。她發現,通過改變字母表的順序,她可以按改變後的字母表來排列字串 字典序大小排列 例如,bessie發現,對於字串串 omm moo mom 和 ommnom 她可以使用標準字母表使 mom 排在第乙個 即字典序最小 她也可以使用字母表 abcdefghijklonmpqr...