题目背景

你知道食物链吗?Delia 生物考试的时候,数食物链条数的题目全都错了,因为她总是重复数了几条或漏掉了几条。于是她来就来求助你,然而你也不会啊!写一个程序来帮帮她吧。

题目描述

给你一个食物网,你要求出这个食物网中最大食物链的数量。

(这里的“最大食物链”,指的是生物学意义上的食物链,即最左端是不会捕食其他生物的生产者,最右端是不会被其他生物捕食的消费者。)

Delia 非常急,所以你只有 1 秒的时间。

由于这个结果可能过大,你只需要输出总数模上 80112002 的结果。

输入格式

第一行,两个正整数n、m,表示生物种类 n 和吃与被吃的关系数 m。

接下来 m 行,每行两个正整数,表示被吃的生物A和吃A的生物B。

输出格式

一行一个整数,为最大食物链数量模上 8011200280112002 的结果。

输入输出样例

输入
5 7
1 2
1 3
2 3
3 5
2 5
4 5
3 4
输出
5

说明

各测试点满足以下约定:

AC的C++代码:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
#define MOD 80112002
struct node{int n;   node * next;
};
node v[100005];
bool isStart[100005];
int dp[100005];
void insertnode(int a,int b){node * t;t = new node; t->n = b;   t->next = v[a].next;  v[a].next = t;        isStart[b] = false; return;
}
int dfs(int x){int ans;if(dp[x]!=-1)return dp[x];else if(v[x].next == NULL){dp[x] = 1;return 1;}node * p;p = v[x].next;ans = 0;while(p!=NULL) {ans += dfs(p->n);ans %= MOD;p = p->next;}dp[x] = ans; return dp[x];
}
int main(){int n,m,a,b,ans;while(cin >> n >> m) {for(int i=1;i<=n;i++) {v[i].n = i;v[i].next = NULL;isStart[i] = true;dp[i] = -1;}for(int i=1;i<=m;i++){scanf("%d%d",&a,&b);insertnode(a,b);}ans = 0;for(int i=1;i<=n;i++){if(isStart[i]&&v[i].next!=NULL)ans += dfs(v[i].n) ;ans %= MOD;}printf("%d\n",ans);}return 0;
}

洛谷 P4017 最大食物链计数相关推荐

  1. 图解Topo拓扑排序 例题洛谷P4017 最大食物链计数

    适用条件:无环图 输出结果:使得每个节点,以它为终点的起点节点排都在其前面 作用:递推保证前面的节点都已经被使用过 实现方法:从没有入边的节点开始,输出并从其他节点中删去自己,重复此步骤直到所有节点都 ...

  2. 拓扑排序——最大食物链计数(洛谷 P4017)

    题目选自洛谷P4017 这里具体讲一下为什么要用拓扑排序(思维过程): 1.这是一道图论题: 2.不是求最短路: 3.根据提示"最左端是不会捕食其他生物的生产者"可以想到,我们要入 ...

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

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

  4. 洛谷P1061 Jam的计数法 数学

    洛谷P1061 Jam的计数法 数学  已知一个字符串 其 均有 s--t构成 且字符串要求 s[ i ]<s[ j ] i < j 已知一个字符串 求按字典序排列 的后5个字符串 1. ...

  5. 洛谷 1144 最短路计数 bfs

    洛谷1144 最短路计数 传送门 其实这道题目的正解应该是spfa里面加一些处理,,然而,,然而,,既然它是无权图,,那么就直接bfs了,用一个cnt记录一下每一个点的方案数,分几种情况讨论一下转移, ...

  6. 【洛谷P2024】食物链

    题目描述 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A 吃 B,B 吃 C,C 吃 A. 现有 N 个动物,以 1 - N 编号.每个动物都是 A,B,C 中的一种,但是我 ...

  7. 洛谷P1061 Jam的计数法

    题目描述 Jam是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩.在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字 ...

  8. 洛谷P4727:图的同构计数(Polya引理)(dfs)

    解析 <关于我想了半天 dp 结果看题解 dfs 就行这回事> 我就说 gcd⁡\gcdgcd 这玩意 dp 个锤子啊- 拆分数的增长速度远没有想像中那么大,事实上,n=60n=60n=6 ...

  9. 洛谷 P3183 [HAOI2016]食物链

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

最新文章

  1. hibernate select 读取结果集的两种办法
  2. 【翻译】Ext JS 4.2介绍
  3. Effective C# Item45 : 优先选择强异常安全保证
  4. MyEclipse/Eclipse中properties文件中文乱码问题解决
  5. 你以后会不会有小三?
  6. Asp.Net中WebForm与MVC,Web API模式对比
  7. 垃圾回收算法_垃圾回收算法有哪些
  8. 百度 图片文字识别 Python版本
  9. JZYZOJ1140 飞船控制站
  10. 【BP神经网络】使用反向传播训练多层神经网络的原则+“常见问题”
  11. ios备忘录下载安卓版_IOS版+安卓版,全下载注册教程
  12. doc 问卷调查模板表_问卷调查表格式范本.doc
  13. mysql 计算农历_SQL农历转换函数
  14. DB2的VALUE函数
  15. 求两个数的最大公约数,Euclid算法证明,以及C语言代码实现
  16. 微信公众号开发:获取openId和用户信息(完整版)
  17. java计算乘地铁费用_蓝桥杯-地铁换乘
  18. OpenJudge计算概论-鸡尾酒疗法
  19. akoj-1245-字符转换
  20. FreeSWITCH 对接阿里SDM(MRCP-SERVER)

热门文章

  1. 一点感想——还没学会跑,怎么能够想着飞
  2. 任务计划程序设置软件在电脑重启后启动
  3. webpack——快速入门【一】
  4. OpenCL将数组从内存copy到显存
  5. HDU 5895 Mathematician QSC
  6. org.apache.commons.dbutils.QueryRunner 执行sqlserver的存储过程
  7. C# const与readonly的用法和区别解析(转)
  8. 南邮数据库系统设计期中测试题库(雨课堂 + 慕课)
  9. 我只是bug的搬运工之jsp 编辑预览时样式可以显示出来,而在浏览器浏览时无法显示出来!
  10. SELinux系列(三)——SELinux的三种工作模式