P318javascript:void(‘FE2C24‘)3 [HAOI2016] 食物链(记忆化搜索)

这篇具有很好参考价值的文章主要介绍了P318javascript:void(‘FE2C24‘)3 [HAOI2016] 食物链(记忆化搜索)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1:思路:

从入读为零的点进行记忆化搜索,搜到出度为零的点返回1,所有返回值加起来就是答案。

int dfs(int u){
	if(f[u]!=-1) return f[u];//记忆化搜索 
	int res=0;
	if(chu[u]==0) return 1;//到达食物链底端 
	for(auto to:v[u]){
	res+=dfs(to);
	}
	f[u]=res;//*记忆 
	return res;
}

2:“注意单独的一种孤立生物不算一条食物链。”出题人都这么好心的说了,然而第一次交的时候还是忘了= =(不然只有20分)

  for(int i=1;i<=n;i++){
  	if(ru[i]==0&&chu[i]!=0) //食物链顶端 ,(食物链顶端的同时要满足不是底端) 
	  //即:注意单独的一种孤立生物不算一条食物链。
	  q.push(i);
  }

3:ACcode:

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e5+10;
vector<int>v[N];
int f[N],n,m,ru[N],chu[N],ans;
queue<int>q;
int dfs(int u){
	if(f[u]!=-1) return f[u];//记忆化搜索 
	int res=0;
	if(chu[u]==0) return 1;//到达食物链底端 
	for(auto to:v[u]){
	res+=dfs(to);
	}
	f[u]=res;//*记忆 
	return res;
}
void solve() {
  cin>>n>>m;
  for(int i=1;i<=m;i++){
  	int a,b;
  	cin>>a>>b;//被吃,吃 
  	v[b].push_back(a);
  	ru[a]++; 
  	chu[b]++;
  }
  for(int i=1;i<=n;i++){
  	if(ru[i]==0&&chu[i]!=0) //食物链顶端 ,(食物链顶端的同时要满足不是底端) 
	  //即:注意单独的一种孤立生物不算一条食物链。
	  q.push(i);
  }
  memset(f,-1,sizeof f); 
  while(!q.empty()){
  	dfs(q.front());
  	ans+=f[q.front()];
  	q.pop();
  }
  cout<<ans<<"\n";
}
signed main() {
	ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
	int tt=1;
	//cin>>tt;
	while(tt--)
		solve();
	return 0;
}

over~bb文章来源地址https://www.toymoban.com/news/detail-615556.html

到了这里,关于P318javascript:void(‘FE2C24‘)3 [HAOI2016] 食物链(记忆化搜索)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 详解AT24CXX驱动开发(linux platform tree - i2c应用)

    目录 概述 1 认识AT24Cxx 1.1 AT24CXX的特性 1.2 AT24CXX描述 1.2.1 引脚 1.2.2 容量描述 1.2.3 设备地址 1.3 操作时序 1.3.1 写单个字节时序 1.3.2 写page字节时序 1.3.3 读取当前数据时序 1.3.4 随机读取数据 1.3.5 连续读取多个数据 2 驱动开发 2.1 硬件接口 2.2 代码实现 2.2.1 查看设备信息 2.2.2 编写

    2024年02月22日
    浏览(43)
  • 51单片机——模拟I2C总线与AT24C02通信

    目录 一、写在前面 二、功能描述 三、主要模块介绍 3.1 I2C总线介绍 3.2 I2C总线协议 3.2.1数据有效规定 3.2.2起始信号和停止信号  3.2.3 发送应答和接收应答 3.2.4 主机发送一个字节和接收一个字节 3.3 AT24C02介绍 3.3 字节写和随机读 四、测试文件test.c 五、现象描述 AT24C02芯片有I

    2024年02月14日
    浏览(53)
  • 【STM32】AT24C256硬件I2C读写,基于HAL库

    目录 一、简单介绍 二、配置工程 打开CubeMX,配置时钟,调试接口,工程名,目录等 配置iic 配置串口用于显示信息 三、硬件连接 四、代码编写 一、随机写入一个字节 测试代码 波形如下 代码编写 二、连续写入 代码如下 三、随机读取 测试代码 波形如下 代码编写 四、连续

    2024年02月03日
    浏览(48)
  • STM32基于HAL工程硬件I2C读写AT24C02/04/08数据

    ✨申明:本文章仅发表在CSDN网站,任何其他网站,未注明来源,见此内容均为盗链和爬取,请多多尊重和支持原创! 🍁对于文中所提供的相关资源链接将作不定期更换。 相关篇针对AT24C32及以上容量《STM32基于STM32-HAL工程硬件I2C读取AT24Cxx数据》 🎯本工程使用STM32F103VE+AT24C02实

    2023年04月11日
    浏览(50)
  • EEPROM芯片(24c02)使用详解(I2C通信时序分析、操作源码分析、原理图分析)

    (1)本文主要是通过24c02芯片来讲解I2C接口的EEPROM操作方法,包含底层时序和读写的代码; (2)大部分代码是EEPROM芯片通用的,但是其中关于某些时间的要求,是和具体芯片相关的,和主控芯片和外设芯片都有关系,需要具体分析,但是逻辑顺序是不变的; (1)在嵌入式开发中,

    2024年02月09日
    浏览(61)
  • STM32存储左右互搏 I2C总线FATS读写EEPROM ZD24C1MA

    在较低容量存储领域,EEPROM是常用的存储介质,可以通过直接或者文件操作方式进行读写。不同容量的EEPROM的地址对应位数不同,在发送字节的格式上有所区别。EEPROM是非快速访问存储,因为EEPROM按页进行组织,在连续操作模式,当跨页时访问地址不是跳到下一页到开始,而

    2024年02月12日
    浏览(65)
  • 【STM32L496】使用HAL库实现I2C写入/读取数据(M24C32)

    IIC原理超详细讲解—值得一看 【嵌入式硬件芯片开发笔记】EEPROM芯片M24C32配置流程 STM32硬件I2C与软件模拟I2C超详解 实现通信功能的芯片为M24C32,对此,芯片手册上第一页就有对其概括描述。 Automotive 32-Kbit serial I²C bus EEPROM with 1 MHz clock 启动/停止条件 :当串行时钟(SCL)位于

    2024年02月03日
    浏览(66)
  • 【IMX6ULL驱动开发学习】10.Linux I2C驱动实战:AT24C02驱动设计流程

    前情回顾:【IMX6ULL驱动开发学习】09.Linux之I2C框架简介和驱动程序模板_阿龙还在写代码的博客-CSDN博客 目录 一、修改设备树(设备树用来指定引脚资源) 二、编写驱动 2.1 i2c_drv_read 2.2 i2c_drv_write 2.3 完整驱动程序 三、上机测试 放在哪个I2C控制器下面 AT24C02的I2C设备地址(查

    2024年02月11日
    浏览(48)
  • P4491 [HAOI2018] 染色

    传送门:洛谷 写本题需要知道一个前置知识: 假设恰好选 k k k 个条件的方案数为 f ( k ) f(k) f ( k ) ;先钦定选 k k k 个条件,其他条件无所谓的方案数为 g ( k ) g(k) g ( k ) 那么存在这样的一个关系: g ( k ) = ∑ i = k n C i k f ( i ) g(k)=sum_{i=k}^nC_{i}^kf(i) g ( k ) = ∑ i = k n ​ C i k ​ f ( i ) 上述

    2024年02月07日
    浏览(35)
  • 【dfs序+线段树】P3178 [HAOI2015]树上操作

    这道题,昨天调到一点多都没调出来,眼睛都要瞎了 今天看着题解边看边调出来了,但是还是感觉不是很会 m d,学的第一道关于树的DS就搞成这样 感觉很寄啊 P3178 [HAOI2015]树上操作 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意:   思路: 对于树上的修改操作,我们可以把

    2024年02月06日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包