老规矩,传送门


做题从头到尾的思路:

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. 广度优先搜索 BFS 学习笔记

    广度优先搜索 BFS 学习笔记 引入 广搜是图论中的基础算法之一,属于一种盲目搜寻方法. 广搜需要使用队列来实现,分以下几步: 将起点插入队尾: 取队首 \(u\),如果 $u\to v $ 有一条路 ...

  2. filter/backdrop-filter 毛玻璃效果

    对于方式二采用的方式,如果存在边缘模糊程度不够,可以设置扩大伪元素范围(margin: -20px),父元素超出裁剪(overflow: hidden). <!DOCTYPE html> ...

  3. Java学习笔记-基础语法Ⅳ

    多态:同一个对象,在不同时刻表现出来的不同形态 例如: 猫 cat = new 猫(); 动物 animal = new 猫(); 这里的猫在不同时刻表现出来不同的形态,这就是多态 多态的前提和体现: ...

  4. Ruby 趣学笔记(一)

    Ruby 趣学笔记(一) 本文写于 2020 年 5 月 6 日 Ruby 趣学笔记(一) 变量 变量声明 变量类型 常量 输出 字符串 字符串操作 Array 数组的遍历 数组的连接 怎么判断该变量 ...

  5. 1903021121-刘明伟-java十一周作业-java面向对象编程

    项目 内容 课程班级博客链接 19级信计班(本) 作业要求链接 第十一周作业 博客名称 1903021121-刘明伟-java十一周作业-java面向对象 要求 每道题要有题目,代码(使用插入代码,不 ...

  6. Redis 的数据过期了就会马上删除么?

    码哥,当 key 达到过期时间,Redis 就会马上删除么? 先说结论,并不会立马删除,Redis 有两种删除过期数据的策略: 定期选取部分数据删除: 惰性删除: 该命令在 Redis 2.4 版本, ...

  7. Apache ShenYu:分析、实现一个 Node.js 语言的 HTTP 服务注册客户端(HTTP Registry)

    这块没空写文章了,先贴出实现代码吧 yuque.com/myesn

  8. 119_Power Pivot 长尾明细显示为【其他】

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 最近比较忙,太久不没有更新文章,确实没有好的素材,就写一个吧. 在关于产品数据分析的时候,我们经常关注的是主要的 ...

  9. 什么是请求参数、表单参数、url参数、header参数、Cookie参数?一文讲懂

    最近在工作中对 http 的请求参数解析有了进一步的认识,写个小短文记录一下. 回顾下自己的情况,大概就是:有点点网络及编程基础,只需要加深一点点对 HTTP 协议的理解就能弄明白了. 先分享一个小故 ...

  10. curl-URL请求

    模拟HTTP请求,通过访问URL获取HTTP响应. 语法 curl [选项] 访问URL 选项 --connect-timeout SECONDS 设置最大请求时间. -C, --continue-a ...