你知道食物鏈嗎?delia生物考試的時候,數食物鏈條數的題目全都錯了,因為她總是重複數了幾條或漏掉了幾條。於是她來就來求助你,然而你也不會啊!寫乙個程式來幫幫她吧。
給你乙個食物網,你要求出這個食物網中最大食物鏈的數量。
(這裡的「最大食物鏈」,指的是生物學意義上的食物鏈,即最左端是不會捕食其他生物的生產者,最右端是不會被其他生物捕食的消費者。)
delia非常急,所以你只有1秒的時間。
由於這個結果可能過大,你只需要輸出總數模上80112002的結果。
第一行,兩個正整數n、m,表示生物種類n和吃與被吃的關係數m。
接下來m行,每行兩個正整數,表示被吃的生物a和吃a的生物b。
一行乙個整數,為最大食物鏈數量模上80112002的結果。
571
2132
3352
5453
4
5
#include
#define m(a,b) memset(a,b,sizeof(a))
using
namespace std;
inline
void
read
(int
&x)while
(ch>=
'0'&& ch<=
'9')
if(c==
'-')x=
-x;}
const
int mod=
80112002
;queue<
int> q;
int d[
1000005
],in[
1000005
],eat[
1000005
],head[
1000005];
int n,m,i,tot,ans;
struct ee[
1000005];
inline
void
add(
int u,
int v)
inline
void
work()
}while
(!q.
empty()
)}}int
main()
work()
;for
(i=1
;i<=n;i++)if
(eat[i]==0
)ans=
(ans+d[i]
)%mod;
cout<}
P4017 最大食物鏈計數
你知道食物鏈嗎?delia 生物考試的時候,數食物鏈條數的題目全都錯了,因為她總是重複數了幾條或漏掉了幾條。於是她來就來求助你,然而你也不會啊!寫乙個程式來幫幫她吧。給你乙個食物網,你要求出這個食物網中最大食物鏈的數量。這裡的 最大食物鏈 指的是生物學意義上的食物鏈,即最左端是不會捕食其他生物的生產...
P4017 最大食物鏈計數
miku 很水的拓撲排序 dp 看錯題除外。這道題是要求有多少條食物鏈滿足 左端是不會捕食其他生物的生產者,最右端是不會被其他生物捕食的消費 不是求最長的多長或者有幾條最長!把一些無關緊要的變數起一些人名真有意思 include includeusing namespace std queueq s...
P4017 最大食物鏈計數
狀態表示 f i 表示從 i 開始的所有食物鏈的集合,儲存個數屬性 狀態計算 f i f j 1 f j 2 f j k 其中 j k 為 i 的第 k 個後繼結點 思路 從每乙個最大的捕食者出發跑一遍記憶化,把從他開始的所有食物鏈的個數加上。include includeusing namespa...