老规矩,传送门


做题从头到尾的思路:

1. 这个题明显就是dfs数数量了,简单,邻接矩阵干他!

  TLE警告,8个点

额。。。

2. 老师说这玩意不能邻接矩阵?没事,还有邻接表,再来!

  再次TLE 8个点

3. 我打记忆化搜索!

  没有TLE,WA 8个点

4. 不开long long见祖宗。。。

  WA 6个点

5. 得出结论,偷懒失败,打前向星吧。。。。

  “你通过了此题 恭喜!”

。。。

恭喜。。。


好了,正经一点,来说这个题。

这个题是我刚学图论,dfs的时候开始做的,中间还放了很久,前几天清理未通过题的时候想起来的做完的,整个过程还是比较艰辛的。。。

读一遍题,就这个题就是简单的dfs,

再看一眼,有向图

看一眼数据范围,邻接矩阵邻接表都不能用,那用啥?

前向星啊!

#include<iostream>
#include<cstdio>
#define ll long long
#define NUM 500010
#define INF 80112002
using namespace std;
inline void read(int &x){
x=0;int fh=1;
char ch=getchar();
while(!isdigit(ch)){
if(ch=='-'){
fh=-1;
}
ch=getchar();
}
while(isdigit(ch)){
x=(x<<3)+(x<<1)+ch-'0';
ch=getchar();
}
x*=fh;
}
struct bian{
int to,next;
};
bian e[NUM];
int n,m,cnt;
unsigned ll ans;
ll gu[NUM];
ll cnta = 0;
bool id[NUM],c[NUM];
int head[NUM];
ll s( int t ){
if( !id[t] ) return 1;
if( gu[t] ) return gu[t];
ll lin = 0;
for( int i = head[t];i;i = e[i].next ){
int p = e[i].to;
lin = (s( p ) + lin) % INF;
}
gu[t] = lin;
return lin;
}
void cun( int x,int y ){
e[++cnt].next = head[x];
e[cnt].to = y;
head[x] = cnt;
}
int main(){
read(n);read(m);
for( int i = 1;i <= m;i++ ){
int x,y;
read(x);read(y);
c[y]++;//入度
id[x]++;
cun( x,y );
}
for( int i = 1;i <= n;i++ ){
if( c[i] == 0 ) ans = ( ans + s(i) ) % 80112002;
}
cout << ans;
}

反正就很水的题因为我脑瘫,拖了这么久,最后还需要写个博客纪念一下。。。

洛谷P4017 最大食物链数量 dfs的更多相关文章

  1. 洛谷 P4017 最大食物链计数

    洛谷 P4017 最大食物链计数 洛谷传送门 题目背景 你知道食物链吗?Delia生物考试的时候,数食物链条数的题目全都错了,因为她总是重复数了几条或漏掉了几条.于是她来就来求助你,然而你也不会啊!写 ...

  2. 动态规划 洛谷P4017 最大食物链计数——图上动态规划 拓扑排序

    洛谷P4017 最大食物链计数 这是洛谷一题普及/提高-的题目,也是我第一次做的一题 图上动态规划/拓扑排序 ,我认为这题是很好的学习拓扑排序的题目. 在这题中,我学到了几个名词,入度,出度,及没有环 ...

  3. 洛谷——P4017 最大食物链计数

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

  4. 洛谷 P4017 最大食物链计数 题解

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

  5. 洛谷 P4017 最大食物链计数 (拓扑排序,思维)

    题意:有\(n\)个点,连\(m\)条边,求最多有多少条食物链(从头走到为有多少条路径). 题解:之前抽了点时间把拓扑排序补完了,这题其实就是一道拓扑排序的裸题.关于拓扑排序: ​ 1.首先,我们用\ ...

  6. 洛谷P4017 最大食物链计数

    拓扑排序板子题 #include <iostream> #include <cstdio> #include <cstring> #include <queu ...

  7. 洛谷 P1451 求细胞数量

    题目链接 https://www.luogu.org/problemnew/show/P1451 题目描述 一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右若还是细胞数字 ...

  8. 【新知识】队列&bfs【洛谷p1996约瑟夫问题&洛谷p1451求细胞数量】

    (是时候为五一培训准备真正的技术了qwq) part1  队列(FIFO) 算法简介: FIFO:First In First Out(先进先出) 队列是限定在一端进行插入,另一端进行删除的特殊线性表 ...

  9. 洛谷P1219 八皇后【dfs】

    题目描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用序列2 4 6 1 3 ...

随机推荐

  1. Unity制作一个小星球

    制作过程 在场景中新建一个球体(Planet)和一个胶囊(Player),适当缩放并添加材质,这里胶囊会被视为玩家 然后将摄像机设为胶囊(Player)的子物体 自行调整合适的摄像机视角 新建脚本Gr ...

  2. XCTF练习题---MISC---Cephalopod

    XCTF练习题---MISC---Cephalopod flag:HITB{95700d8aefdc1648b90a92f3a8460a2c} 解题步骤: 1.观察题目,下载附件 2.拿到手以后发现是 ...

  3. [AcWing 801] 二进制中1的个数

    点击查看代码 #include<iostream> using namespace std; int lowbit(int x) { return x & -x; } int ma ...

  4. 基本命令学习 -(4)链接文件:ln命令

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 前言 在Windows系统中,快捷方式是指向原始文件的一个链接文件,原文件一旦被删除或剪切到其 ...

  5. Nacos源码系列—关于服务注册的那些事

    点赞再看,养成习惯,微信搜索[牧小农]关注我获取更多资讯,风里雨里,小农等你,很高兴能够成为你的朋友. 项目源码地址:公众号回复 nacos,即可免费获取源码 简介 首先我们在看Nacos源码之前,要 ...

  6. DDoS攻击--Syn_Flood攻击防护详解(TCP)

    https://blog.csdn.net/qq_34777600/article/details/81946514

  7. windows 存储和切换 ip 配置

    我的虚拟机用的是桥接模式,在公司使用时设置的是静态 ip,但网段和家里面的不一样,就导致在公司和家里,我需要频繁修改 ipv4 的配置以适应不同的网络环境 Simple-IP-Config 工具解决了 ...

  8. 渗透:zANTI

    Zanti简介 Zanti是由Zimperium公司打造的Android平台下的渗透测试工具包. Zanti支持两种中间人攻击方式,分别为MIMT攻击和ARP攻击,中间人内带有多个攻击模块,例如MAC ...

  9. SQL中常用的字符串LEFT函数和RIGHT函数详解!

    今天继续整理日常可能经常遇到的一些处理字符串的函数,记得点赞收藏!以备不时之需!看到最后有惊喜! LEFT(expression, length)函数 解析:从提供的字符串的左侧开始提取给定长度的字符 ...

  10. unity---脚本创建文本

    脚本创建文本 新建文件夹 Resources 方便引用字体 在文件Resources中新建Fonts,并且下载一个ttf字体 没有字体,文本内容无法显示 脚本如下 public GameObject ...