洛谷 P4017 最大食物链计数
【题目链接】洛谷 P4017 最大食物链计数【题目考点】1. 有向无环图动规拓扑排序【解题思路】每个生物是一个顶点。如果A被B吃或者说B吃A那么A到B有一条有向边有向边的方向代表能量流动的方向。食物链构成的网中一定没有环该图是有向无环图。一条食物链的左端是“不会捕食其他生物的生产者”即它不会吃其它生物不会有能量流向该生物那么其它顶点到“生产者”顶点没有边即“不会捕食其他生物的生产者”顶点的入度为0。一条食物链的右端是“不会被其他生物捕食的消费者”即该生物的能量不会流向其它生物那么该顶点到其它顶点没有边即“不会被其他生物捕食的消费者”顶点的出度为0。该题求从图中入度为0的顶点到出度为0的顶点的路径数量。状态定义阶段到达某个顶点决策下一步到哪个邻接点策略路径策略集合从入度为0的顶点出发到达某顶点的所有路径统计量路径数状态定义d p i dp_idpi​从入度为0的顶点出发到达顶点i的路径数。对于入度为0的顶点u到达顶点u的路径数为1因此d p u 1 dp_u1dpu​1状态转移方程策略集合从入度为0的顶点出发到达顶点v的所有路径分割策略集合根据到达顶点v的前一个顶点的不同情况分割策略集合。设模数M 80112002 M80112002M80112002如果到达顶点v的前一个顶点为顶点u顶点u到顶点v有一条边u, v。那么每条到达顶点u的路径在加上边u, v都可以形成一条到达顶点v的路径。到达顶点v的路径的数量需要增加到达顶点u的路径的数量再对模数M取模。对于每个到v有边的顶点u都需要让到达顶点v的路径数量增加到达顶点u的路径数。因此状态转移方程为d p v ∑ u , v ∈ E { d p u } m o d M dp_v \sum\limits_{u,v\in E}\{dp_u\}\bmod Mdpv​u,v∈E∑​{dpu​}modME EE为图的边集。 u , v ∈ E u,v \in Eu,v∈E表示图中存在边u, v。要想先访问所有到顶点v有边的顶点u再访问顶点v需要按照拓扑排序的顺序访问各个顶点。在拓扑排序的过程中进行动规即可求出状态数组d p dpdp。最后遍历所有顶点对出度为0的顶点的路径数加和并对模数取模即可得到本题的答案。遍历所有顶点的过程可以写for循环遍历所有顶点的编号也可以在拓扑排序过程中顶点出队时对出队的顶点做处理。拓扑排序的过程也是对图中顶点遍历的过程。【题解代码】解法1拓扑排序动规#includebits/stdc.h#defineINF0x3f3f3f3fusingnamespacestd;constintN5005,M80112002;vectorintedge[N];//edge[i]顶点i的邻接点intn,m,degIn[N],degOut[N],dp[N],ans;//dp[i]从入度为0的顶点到顶点i的路径数量voidtopoSort(){queueintque;for(inti1;in;i)if(degIn[i]0){que.push(i);dp[i]1;}while(!que.empty()){intuque.front();que.pop();if(degOut[u]0)//拓扑排序的过程也是对图遍历的过程u出队时dp[u]已经求好了。ans(ansdp[u])%M;for(intv:edge[u]){dp[v](dp[v]dp[u])%M;if(--degIn[v]0)que.push(v);}}}intmain(){intf,t;cinnm;for(inti1;im;i){cinft;edge[f].push_back(t);degIn[t],degOut[f];//degIn[i]顶点i的入度 degOut[i]顶点i的出度}topoSort();coutans;return0;}

相关新闻

【大数据分析毕设选题】基于Spark的美食数据可视化系统完整源码分享 毕业设计 选题推荐 毕设选题 数据分析 机器学习 数据挖掘

【大数据分析毕设选题】基于Spark的美食数据可视化系统完整源码分享 毕业设计 选题推荐 毕设选题 数据分析 机器学习 数据挖掘

✍✍计算机毕设指导师** ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡有什么问题可以…

2026/7/3 14:10:43 阅读更多 →
被忽略太久了!这5款办公软件,很多人连名字都没听过!

被忽略太久了!这5款办公软件,很多人连名字都没听过!

说“要么WPS要么微软office”的各位,得看完这篇文章了! 当你只盯着这两个名字时,很多已经发生变化的东西,你根本没看到。 不说情怀,也不谈立场,直接看软件本身。 直接进入正题。 3个免费又开源&#xff…

2026/7/4 14:17:49 阅读更多 →
【课程设计/毕业设计】基于 SpringBoot 的酒店客房管理系统基于springboot的酒店入住管理系统【附源码、数据库、万字文档】

【课程设计/毕业设计】基于 SpringBoot 的酒店客房管理系统基于springboot的酒店入住管理系统【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/3 14:10:40 阅读更多 →

最新新闻

E-Hentai Downloader 项目中的 GP 限制问题解析

E-Hentai Downloader 项目中的 GP 限制问题解析

E-Hentai Downloader 项目中的 GP 限制问题解析 问题背景 在使用 E-Hentai Downloader 脚本下载旧图库时,用户可能会遇到"GP Limit Exceeded"的错误提示。这个问题通常出现在下载较旧的图库(90天以上)时,特别是当用户尝…

2026/7/4 21:56:14 阅读更多 →
AutoUnipus:3分钟搞定U校园网课答题的终极指南

AutoUnipus:3分钟搞定U校园网课答题的终极指南

AutoUnipus:3分钟搞定U校园网课答题的终极指南 【免费下载链接】AutoUnipus U校园脚本,支持全自动答题,百分百正确 2024最新版 项目地址: https://gitcode.com/gh_mirrors/au/AutoUnipus 还在为U校园平台枯燥的网课任务消耗宝贵时间而烦恼吗?Auto…

2026/7/4 21:54:13 阅读更多 →
Sublime Text Orgmode插件常见问题解决方案:从安装到高级使用

Sublime Text Orgmode插件常见问题解决方案:从安装到高级使用

Sublime Text Orgmode插件常见问题解决方案:从安装到高级使用 【免费下载链接】orgmode orgmode is for keeping notes, maintaining TODO lists, planning projects, and authoring documents with a fast and effective plain-text system. 项目地址: https://g…

2026/7/4 21:52:12 阅读更多 →
YOLOv5 vs YOLOv7 vs YOLOv8:gh_mirrors/yo/yolo_research项目中的模型对比与选择策略 [特殊字符]

YOLOv5 vs YOLOv7 vs YOLOv8:gh_mirrors/yo/yolo_research项目中的模型对比与选择策略 [特殊字符]

YOLOv5 vs YOLOv7 vs YOLOv8:gh_mirrors/yo/yolo_research项目中的模型对比与选择策略 🚀 【免费下载链接】yolo_research based on yolo-high-level project (detect\pose\classify\segment\):include yolov5\yolov7\yolov8\ core ,improvement researc…

2026/7/4 21:50:11 阅读更多 →
高效字典生成框架:cook 的完整实战指南与安全研究应用

高效字典生成框架:cook 的完整实战指南与安全研究应用

高效字典生成框架:cook 的完整实战指南与安全研究应用 【免费下载链接】cook A wordlist framework to fullfill your kinks with your wordlists. For security researchers, bug bounty and hackers. 项目地址: https://gitcode.com/gh_mirrors/coo/cook …

2026/7/4 21:48:10 阅读更多 →
NumPy/SciPy 实战:实对称矩阵 4 阶例题的 3 种对角化实现与性能对比

NumPy/SciPy 实战:实对称矩阵 4 阶例题的 3 种对角化实现与性能对比

NumPy/SciPy 实战:4阶实对称矩阵对角化的3种实现与性能分析在数据科学与机器学习领域,矩阵对角化是一项基础但至关重要的运算技术。当我们面对实对称矩阵时,这种运算不仅具有理论上的优雅性,更蕴含着丰富的实际应用价值。本文将以…

2026/7/4 21:48:10 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻