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
出生物题是什么心态???
一条食物链就是从0入度节点到0出度节点的一条路径,而这又是一个DAG,所以拓扑排序后随便DP一下就好了。
#include<cstdio>
#include<cctype>
#include<queue>
#include<cstring>
#include<algorithm>
#define rep(i,s,t) for(int i=s;i<=t;i++)
#define dwn(i,s,t) for(int i=s;i>=t;i--)
#define ren for(int i=first[x];i;i=next[i])
using namespace std;
const int BufferSize=1<<16;
char buffer[BufferSize],*head,*tail;
inline char Getchar() {if(head==tail) {int l=fread(buffer,1,BufferSize,stdin);tail=(head=buffer)+l;}return *head++;
}
inline int read() {int x=0,f=1;char c=Getchar();for(;!isdigit(c);c=Getchar()) if(c=='-') f=-1;for(;isdigit(c);c=Getchar()) x=x*10+c-'0';return x*f;
}
const int maxn=100010;
const int maxm=200010;
typedef long long ll;
int n,m,first[maxn],deg[maxn],in[maxn],is[maxn],next[maxm],to[maxm],e;
void AddEdge(int u,int v) {in[v]++;deg[v]++;is[u]=1;to[++e]=v;next[e]=first[u];first[u]=e;
}
int Q[maxn],f[maxn],g[maxn];
int main() {n=read();m=read();rep(i,1,m) AddEdge(read(),read());int l=1,r=0;rep(i,1,n) if(!in[i]) Q[++r]=i,f[i]=1;while(l<=r) {int x=Q[l++];ren {f[to[i]]+=f[x];if(!(--in[to[i]])) Q[++r]=to[i];}}int ans=0;rep(i,1,n) if(!is[i]&&deg[i]) ans+=f[i];printf("%d\n",ans);return 0;
}

  

转载于:https://www.cnblogs.com/wzj-is-a-juruo/p/5552671.html

BZOJ4562: [Haoi2016]食物链相关推荐

  1. [bzoj4562][Haoi2016]食物链_记忆化搜索_动态规划

    食物链 bzoj-4562 Haoi-2016 题目大意:给你n个点,m条边的DAG,求所有的满足条件的链,使得每条链的起点是一个入度为0的点,中点是一条出度为0的点. 注释:$1\le n\le 1 ...

  2. 记忆优化搜索(简单题)(洛谷P3183 [HAOI2016]食物链 )( P5635 【CSGRound1】天下第一 )

    昨天做了蓝桥杯的时候,发现自己对于记忆优化搜索甚是不熟悉,所以今天随便找了几个基础题做做,顺便写下两片题解,顺便用了一下devc++敲的代码,发现没有代码补全真的可以说是灰常难受了... 洛谷P318 ...

  3. LuoguP3183 [HAOI2016]食物链 记忆化搜索

    题目描述 如图所示为某生态系统的食物网示意图,据图回答第1小题现在给你n个物种和m条能量流动关系,求其中的食物链条数.物种的名称为从1到n编号M条能量流动关系形如a1 b1a2 b2a3 b3.... ...

  4. [HAOI2016]食物链

    题目描述 如图所示为某生态系统的食物网示意图,据图回答第1小题现在给你n个物种和m条能量流动关系,求其中的食物链条数.物种的名称为从1到n编号M条能量流动关系形如a1 b1a2 b2a3 b3.... ...

  5. 洛谷 P3183 [HAOI2016]食物链

    题目描述 如图所示为某生态系统的食物网示意图,据图回答第1小题现在给你n个物种和m条能量流动关系,求其中的食物链条数.物种的名称为从1到n编号M条能量流动关系形如a1 b1a2 b2a3 b3.... ...

  6. 【BZOJ4562】食物链,拓扑DP

    Time:2016.06.15 Author:xiaoyimi 转载注明出处谢谢 传送门 思路: 给出边的关系=被捕食者->捕食者 每一个出度为0且有入度的动物肯定是一个食物链的末尾 倒着建图, ...

  7. bzoj4562【HAOI2016】食物链

    4562: [Haoi2016]食物链 Time Limit: 10 Sec   Memory Limit: 128 MB Submit: 216   Solved: 173 [ Submit][ S ...

  8. --scrapy爬虫--

    命令行中建立scrapy工程: scrapy startproject [工程名] 爬虫文件:     在spider目录下新建一个python文件并写入以下内容 import scrapyclass ...

  9. [DP魔炼][DP] DP随练随学(疯狂A题训练——DP基础篇 题解 下)

    终于写完啦!!!!!!!! T28 最大子段和 传送门 维护前缀和 找前面最小的 #include<bits/stdc++.h> using namespace std; #define ...

最新文章

  1. WPF的消息机制(二)- WPF内部的5个窗口之隐藏消息窗口
  2. 技术16期:如何更好的保证数据质量【大数据篇】
  3. 天平游码读数例题_电子天平偏载误差的检定与处理
  4. shell,自动挂载磁盘
  5. 类数组arguments
  6. api 创建zookeeper客户端_一文了解 Zookeeper 基本原理与应用场景
  7. .net mysql 类库_(精华)2020年6月27日 C#类库 MySqlHelper(Ado.net数据库封装)
  8. 风投的钱都从哪里来?
  9. php文字红色代码,IOS_IOS中一段文字设置多种字体颜色代码,给定range和需要设置的颜色, - phpStudy...
  10. python实现web服务器_python实现静态web服务器
  11. Javascript 检查对象是否含有这个属性
  12. mysql5.5创建学生情况表_数据库中创建一个学生表
  13. 美国软件是如何最终装备在中国攻击直升机上的(二)
  14. 自动聊天机器人项目班 [一门课搞定聊天机器人]
  15. 1001系列之案例0003如何对欧洲人口普查数据集整理挖掘
  16. RTOS那些你得知道的事儿(一)
  17. Excel:sumifs函数
  18. 鹏鹏:python 机器学习初学者 三剑客介绍。
  19. java map存储对象_java-在ConcurrentHashMap中存储复杂对象
  20. 微信小程序设置顶部navigationBar为颜色渐变

热门文章

  1. 影响个人计算机系统功能的因素,影响个人计算机系统功能的因素除了系统使用哪种位的微处理器外,还有CPU的时钟频率、CPU主内存容量、CPU所能提供的指令集。...
  2. 取得二进制最右面为1的数
  3. 怎么修改ipv4服务器,如何修改ipv4 wins 服务器地址
  4. java用户名检查数据库_登入界面账号密码是访问数据库,但登入问题时if判断时就是执行不了...
  5. C语言 | 变量的存储方式
  6. jq 控制td只显示一行_CSS让表格里的内容强制显示一行,超出长度显示省略号
  7. linux内核3.14.4,Linux内核4.14.14,4.9.77,4.4.112和3.18.92更新发布
  8. linux将日期和日历信息追加到文件中_Linux任务调度
  9. pat 乙级 1012 数字分类(C++)
  10. 【渝粤题库】陕西师范大学202081 管理学 作业 (专升本、高起本、高起专)