題目背景
你知道食物鏈嗎?delia 生物考試的時候,數食物鏈條數的題目全都錯了,因為她總是重複數了幾條或漏掉了幾條。於是她來就來求助你,然而你也不會啊!寫乙個程式來幫幫她吧。
題目描述
給你乙個食物網,你要求出這個食物網中最大食物鏈的數量。
(這裡的「最大食物鏈」,指的是生物學意義上的食物鏈,即最左端是不會捕食其他生物的生產者,最右端是不會被其他生物捕食的消費者。)
delia 非常急,所以你只有 111 秒的時間。
由於這個結果可能過大,你只需要輸出總數模上 801120028011200280112002 的結果。
輸入格式
第一行,兩個正整數 n、mn、mn、m,表示生物種類 nnn 和吃與被吃的關係數 mmm。
接下來 mmm 行,每行兩個正整數,表示被吃的生物a和吃a的生物b。
輸出格式
一行乙個整數,為最大食物鏈數量模上 801120028011200280112002 的結果。
輸入輸出樣例
輸入 #1
5 71 2
1 32 3
3 52 5
4 53 4
輸出 #1
說明/提示
各測試點滿足以下約定:
【補充說明】
資料中不會出現環,滿足生物學的要求。(感謝 @akee )
#include
#include
#include
//#define int long long
using
namespace std;
const
int mod =
80112002
;const
int maxn =
5e3+10;
int rd[maxn]
;int cd[maxn]
;bool vis[maxn]
;int a[maxn]
[maxn]
;int value[maxn]
;int n, m;
signed
main()
queue<
int>que;
for(
int i =
1; i <= n; i++)if
(rd[i]==0
) que.
push
(i), value[i]=1
;while
(!que.
empty()
)}}int ans =0;
for(
int i =
1; i <= n; i++)if
(cd[i]==0
) ans =
(ans + value[i]
)% mod;
cout << ans;
return0;
}
P4017 最大食物鏈計數 拓撲排序
你知道食物鏈嗎?delia生物考試的時候,數食物鏈條數的題目全都錯了,因為她總是重複數了幾條或漏掉了幾條。於是她來就來求助你,然而你也不會啊!寫乙個程式來幫幫她吧。給你乙個食物網,你要求出這個食物網中最大食物鏈的數量。這裡的 最大食物鏈 指的是生物學意義上的食物鏈,即最左端是不會捕食其他生物的生產者...
P4017 最大食物鏈計數
你知道食物鏈嗎?delia生物考試的時候,數食物鏈條數的題目全都錯了,因為她總是重複數了幾條或漏掉了幾條。於是她來就來求助你,然而你也不會啊!寫乙個程式來幫幫她吧。給你乙個食物網,你要求出這個食物網中最大食物鏈的數量。這裡的 最大食物鏈 指的是生物學意義上的食物鏈,即最左端是不會捕食其他生物的生產者...
P4017 最大食物鏈計數
你知道食物鏈嗎?delia 生物考試的時候,數食物鏈條數的題目全都錯了,因為她總是重複數了幾條或漏掉了幾條。於是她來就來求助你,然而你也不會啊!寫乙個程式來幫幫她吧。給你乙個食物網,你要求出這個食物網中最大食物鏈的數量。這裡的 最大食物鏈 指的是生物學意義上的食物鏈,即最左端是不會捕食其他生物的生產...