2266 HAOI2016 食物鏈 記憶化

2022-04-30 02:54:08 字數 2691 閱讀 4946

★   輸入檔案:chain_2016.in輸出檔案:chain_2016.out簡單對比

時間限制:1 s   記憶體限制:128 mb

如圖所示為某生態系統的食物網示意圖,據圖回答第一小題。

1.數一數,在這個食物網中有幾條食物鏈(   )

現在給你n

個物種和m

條能量流動關係,求其中的食物鏈條數。

物種的名稱為從1

到n編號,m

條能量流動關係形如

a1b1

a2b2

a3b3

……am−1bm−1

ambm

其中aibi

表示能量從物種ai

流向物種bi

。第一行兩個正整數n和m。

接下來m

行每行兩個整數aibi

表示m條能量流動關係。

(資料保證輸入資料符號合生物學特點,且不會有重複的能量流動關係出現)

乙個整數即食物網中的食物鏈條數。

10 16

1 21 4

1 10

2 32 5

4 34 5

4 86 8

7 67 9

8 59 8

10 6

10 7

10 9

9
就是上面題目描述1的那個圖。

各個物種的編號依次為:

草1 兔2 狐3 鼠4 貓頭鷹5 吃蟲的鳥6 蜘蛛7 蛇8 青蛙9 食草昆蟲10。

1≤n≤100000,0≤m≤200000

。haoi2016上午第一題 部分題面由ck進行調整

//

單點不算食物鏈

#include#include

#include

#include

using

namespace

std;

const

int n=200010

;int u[n>>1],v[n>>1],v0[n>>1

];int head[n>>1

];int ans[n>>1

];bool vis[n>>1

];int now=1

;int

n,m,js;

intanswer;

struct

nodee[n];

inline

intread()

while(c>='

0'&&c<='

9')x=x*10+c-'

0',c=getchar();

return x*f;

}inline

void add(int u,int

v)void dfs(int

start)

for(int i=head[start];~i;i=e[i].nxt)

if(!vis[e[i].v])

dfs(e[i].v),

vis[e[i].v]=0;}

intmain()

for(int i=1;i<=n;i++)

if(!v[i]&&u[i])

v0[++js]=i;

for(int i=1;i<=js;i++)

dfs(v0[i]);

printf("%d

",answer);

return0;

}/*10 16

1 21 4

1 10

2 32 5

4 34 5

4 86 8

7 67 9

8 59 8

10 6

10 7

10 9

*/

記憶化搜尋:

//

單點不算食物鏈

#include#include

#include

#include

using

namespace

std;

const

int n=200010

;int u[n>>1],v[n>>1],v0[n>>1

];int head[n>>1

];int ans[n>>1

];bool vis[n>>1

];int now=1

;int

n,m,js;

intanswer;

struct

nodee[n];

inline

intread()

while(c>='

0'&&c<='

9')x=x*10+c-'

0',c=getchar();

return x*f;

}inline

void add(int u,int

v)int dfs(int

start)

intmain()

for(int i=1;i<=n;i++)

if(!v[i]&&u[i])

v0[++js]=i;

for(int i=1;i<=js;i++)

answer+=dfs(v0[i]);

printf("%d

",answer);

return0;

}

HAOI2016 食物鏈 (記憶化搜尋)

現在給你n個物種和m條能量流動關係,求其中的食物鏈條數。物種的名稱為從1到n編號m條能量流動關係形如a1 b1a2 b2a3 b3 am 1 bm 1am bm 其中ai bi表示能量從物種ai流向物種bi,注意單獨的一種孤立生物不算一條食物鏈 第一行兩個整數n和m,接下來m行每行兩個整數ai bi...

洛谷 P3183 HAOI2016 食物鏈

如圖所示為某生態系統的食物網示意圖,據圖回答第1小題現在給你n個物種和m條能量流動關係,求其中的食物鏈條數。物種的名稱為從1到n編號m條能量流動關係形如a1 b1a2 b2a3 b3.am 1 bm 1am bm其中ai bi表示能量從物種ai流向物種bi,注意單獨的一種孤立生物不算一條食物鏈 輸入...

球隊「食物鏈」

某國的足球聯賽中有n支參賽球隊,編號從1至n。聯賽採用主客場雙迴圈賽制,參賽球隊兩兩之間在雙方主場各賽一場。聯賽戰罷,結果已經塵埃落定。此時,聯賽主席突發奇想,希望從中找出一條包含所有球隊的 食物鏈 來說明聯賽的精彩程度。食物鏈 為乙個1至nnn的排列,滿足 球隊t1戰勝過球隊t2t 2t 2 球隊...