洛谷 P3183 BZOJ 4562 [HAOI2016]食物链

简介: 题目描述 如图所示为某生态系统的食物网示意图,据图回答第1小题现在给你n个物种和m条能量流动关系,求其中的食物链条数。物种的名称为从1到n编号M条能量流动关系形如a1 b1a2 b2a3 b3......am-1 bm-1am bm其中ai bi表示能量从物种ai流向物种bi,注意单独的一种孤立生物不算一条食物链 输入输出格式 输入格式:   第一行两个整数n和m,接下来m行每行两个整数ai bi描述m条能量流动关系。

题目描述

如图所示为某生态系统的食物网示意图,据图回答第1小题现在给你n个物种和m条能量流动关系,求其中的食物链条数。物种的名称为从1到n编号M条能量流动关系形如a1 b1a2 b2a3 b3......am-1 bm-1am bm其中ai bi表示能量从物种ai流向物种bi,注意单独的一种孤立生物不算一条食物链

输入输出格式

输入格式:

 

第一行两个整数n和m,接下来m行每行两个整数ai bi描述m条能量流动关系。(数据保证输入数据符号生物学特点,且不会有重复的能量流动关系出现)1<=N<=100000 0<=m<=200000题目保证答案不会爆 int

 

输出格式:

 

一个整数即食物网中的食物链条数

 

输入输出样例

输入样例#1:
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
输出样例#1:
9

解题思路

  记忆化搜索即可。BZOJ难得有一道水题

源代码

#include<stdio.h>
int n,m;
int num[100010]={0},ans;
struct Edge{
    int next,to;
}e[200010];
int cnt=1,head[100010]={0},ru[100010]={0};
void add(int u,int v)
{
    e[cnt]={head[u],v};
    head[u]=cnt++;
    ru[v]++;
}

int dfs(int u)
{
    if(num[u]) return num[u];
    if(!head[u]) return 1;
    int num_u=0;
    for(int i=head[u];i;i=e[i].next)
    {
        int v=e[i].to;
        num_u+=dfs(v);
    }
    return num[u]=num_u;
}

int main()
{
    scanf("%d%d",&n,&m);
    for(int i=0,u,v;i<m;i++)
    {
        scanf("%d%d",&u,&v);
        add(u,v);
    }
    for(int i=1;i<=n;i++)
        if(ru[i]==0&&head[i]) ans+=dfs(i);
    printf("%d\n",ans);
    return 0;
}

 

目录
相关文章
|
Web App开发 Oracle Java
Java项目启动时,隐藏的 oracle 驱动异常问题
报错信息:项目启动的时候,一直会报“registered driver with driverclassname=oracle.jdbc.driver.oracledriver was not found, trying direct instantiation.”。
4125 0
|
JavaScript 前端开发 API
探索后端技术:Node.js的优势和实际应用
【10月更文挑战第6天】 在当今数字化时代,后端开发是任何成功软件应用的关键组成部分。本文将深入探讨一种流行的后端技术——Node.js,通过分析其核心优势和实际应用案例,揭示其在现代软件开发中的重要性和潜力。
701 2
|
传感器 数据采集 移动开发
基于STM32的智能手环wifi连接手机APP(下)
基于STM32的智能手环wifi连接手机APP(下)
916 0
|
存储 缓存 UED
【已解决】任务栏图标显示异常问题
【已解决】任务栏图标显示异常问题
|
网络协议 算法 网络安全
CCF推荐A类会议和期刊总结(计算机网络领域)
本文总结了中国计算机学会(CCF)推荐的计算机网络领域A类会议和期刊,这些会议和期刊代表了该领域的顶尖水平,汇聚了全球顶尖研究成果并引领前沿发展。A类期刊包括IEEE Journal on Selected Areas in Communications、IEEE Transactions on Mobile Computing等;A类会议包括SIGCOMM、MobiCom等。关注这些平台有助于研究人员紧跟技术前沿。
CCF推荐A类会议和期刊总结(计算机网络领域)
|
Linux Android开发 iOS开发
使用Kivy创建“Hello World”应用并打包成APK
使用Kivy创建“Hello World”应用并打包成APK
|
算法 小程序 JavaScript
【工具】我错了,这工具才是截图软件的神
本文介绍了一款名为Pixpin的强大截图工具,作者曾是Snipaste的忠实用户,但在尝试Pixpin后决定改换门庭。Pixpin不仅具备强大的截图功能,还支持文本识别、节点标注、长截图、颜色识别及贴图等功能,并且拥有活跃的社区反馈机制。文章详细讲解了Pixpin的各项特色功能及其使用方法,并提供了官方下载链接。通过实际操作演示,展示了Pixpin的便捷性和实用性。
869 0
【工具】我错了,这工具才是截图软件的神
|
存储
【计算机组成原理】指令系统
【计算机组成原理】指令系统
1154 0
【计算机组成原理】指令系统
|
SQL 算法 JavaScript
在线就能用的 SQL 练习平台(附SQL学习文档)
在线就能用的 SQL 练习平台(附SQL学习文档)
1415 0
解决IDEA中ctrl+shift+f快捷键搜索没反应的问题
解决IDEA中ctrl+shift+f快捷键搜索没反应的问题
850 0
解决IDEA中ctrl+shift+f快捷键搜索没反应的问题