bzoj4562: [Haoi2016]食物链
来源:互联网 发布:淘宝客自动发送微信群 编辑:程序博客网 时间:2024/05/22 15:01
Description
如图所示为某生态系统的食物网示意图,据图回答第1小题
现在给你n个物种和m条能量流动关系,求其中的食物链条数。
物种的名称为从1到n编号
M条能量流动关系形如
a1 b1
a2 b2
a3 b3
……
am-1 bm-1
am bm
其中ai bi表示能量从物种ai流向物种bi,注意单独的一种孤立生物不算一条食物链
Input
第一行两个整数n和m,接下来m行每行两个整数ai bi描述m条能量流动关系。
(数据保证输入数据符号生物学特点,且不会有重复的能量流动关系出现)
1<=N<=100000 0<=m<=200000
题目保证答案不会爆 int
Output
一个整数即食物网中的食物链条数
Sample Input
10 16
1 2
1 4
1 10
2 3
2 5
4 3
4 5
4 8
6 5
7 6
7 9
8 5
9 8
10 6
10 7
10 9
Sample Output
9
#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <queue>#define MAXN 200000+5using namespace std;int n,m,r[MAXN],c[MAXN],dp[MAXN],tot,nxt[MAXN],head[MAXN];bool vis[MAXN];int ans = 0;struct ed{ int from,to;}e[MAXN<<1];void build(int f,int t){ e[++tot].from = f; e[tot].to = t; nxt[tot] = head[f]; head[f] = tot;}void dfs(int x){ for(int i = head[x] ; i ; i = nxt[i]) { int t = e[i].to; int f = e[i].from ; dp[t] += dp[f]; r[t]--; if(r[t] == 0) dfs(t);// cout <<t<<" "<<dp[t]<<endl; }}int main(){ int en; scanf("%d%d",&n,&m); for(int i = 1; i<= n; i ++) dp[i] = 0; for(int i = 1; i <= m; i ++) { int x,y; cin>>x>>y; r[y]++; c[x]++; build(x,y); } for(int i = 1; i <= n; i ++) if(r[i] == 0&&c[i]!=0)//不包括孤立的点 { dp[i] = 1,vis[i]=1; } for(int i = 1; i <= n; i ++) if(vis[i])//从入度为0的点开始搜 { dfs(i); } for(int i = 1; i <= n; i ++) if(c[i] == 0) ans += dp[i]; printf("%d",ans); return 0;}
阅读全文
1 0
- BZOJ4562 [Haoi2016]食物链
- bzoj4562【HAOI2016】食物链
- 【bzoj4562】[Haoi2016]食物链
- bzoj4562 [Haoi2016]食物链
- [BZOJ4562] [Haoi2016]食物链
- bzoj4562: [Haoi2016]食物链
- bzoj4562 [Haoi2016]食物链
- 【BZOJ4562】[Haoi2016]食物链【DP】【DAG】【拓扑排序】
- 【bzoj4562】[Haoi2016]食物链 记忆化搜索
- [bzoj4562][Haoi2016]食物链(拓扑序+dp)
- 【BZOJ4562】【拓扑排序】【DP】[Haoi2016]食物链 题解
- 记忆化搜索——BZOJ4562/Luogu3183 [HAOI2016]食物链
- [HAOI2016]食物链
- 【BZOJ4562】食物链,拓扑DP
- 【BZOJ4562】【食物链】【dp+拓扑排序】
- BZOJ 4562: [Haoi2016]食物链
- 【BZOJ】4562 [Haoi2016]食物链
- BZOJ 4562 [Haoi2016]食物链
- 线程3:线程同步
- Tomcat发布为Windows服务
- EasyUI中datagrid获取选择行的相关总结
- document.body.appendChild(div);的用法
- Unity3d调用Android版so库
- bzoj4562: [Haoi2016]食物链
- 微信公众平台开发实战Java版之微信获取用户基本信息
- POJ 2482 Stars in Your Window(线段树扫描线+最浪漫的题意)
- handler+looper+messagequeque消息机制视频讲解
- 初步认识bootstrap
- python基础--set([])
- 回顾和总结的重要性
- 2017.8.16 喵星球上的点名 思考记录
- 51 nod 1625 夹克爷发红包【贪心、二进制枚举】