首页 > 其他分享 >AcWing3305 -- 建图

AcWing3305 -- 建图

时间:2023-03-14 17:45:40浏览次数:49  
标签:杂交 -- 边权 dijkstra 建图 给定 AcWing3305 作物

1. 题目描述

给定我们一些初始作物,和作物之间杂交的规则(作物 \(a\) 和作物 \(b\) 杂交产生种子 \(c\),花费作物 \(a\) 和作物 \(b\) 成熟时间的最大值),让我们求,某个作物 \(T\) 出现的最小时间



2. 思路

建图

最短路应该是可以看出来的,但是对于给定的规则,作物 \(a\) 和作物 \(b\) 杂交产生种子 \(c\),花费作物 \(a\) 和作物 \(b\) 成熟时间的最大值,我们如何根据这条规则建立边呢?
其实这也没什么好解释的,下面直接告诉你答案:

a -> c,边权为 b
b -> c,边权为 a

值得注意的是,这里的边权并不是传统意义上的边权,它代指一个条件。
\(b\) 到 \(c\) 的边权为 \(a\) 表示:\(b\) 只有满足拥有 \(a\) 的条件,才能到达(与 \(a\) 杂交产生) \(c\)。同理,
\(a\) 到 \(c\) 的边权为 \(b\) 表示,\(a\) 只有满足拥有 \(b\) 的条件,才能到达(与 \(b\) 杂交产生)\(c\)。
而真正的边权,就是 max(cost[a], cost[b]),这里的 cost[a] 就是题目给定的作物 \(a\) 成熟的时间。
所以说,通过本题,你应该明白如下结论:

边不止可以存储边权,还可以存储其他前驱结点以及其他的信息

抽象出问题的模型并建图往往是最难的!

求解

好了,现在我们已经建立了一个图,接下来该如下求解呢?
题目给定了我们一些初始作物,要求我们求目标作物,经典的 N -> 1 问题啊!你应该立马想到,将 N 抽象为 1(通过虚拟源点),然后就是求单源最短路!
由于边权都是正值,因此 \(dijkstra\) 和 \(spfa\) 都是可行的。



3. 代码(dijkstra)


4. 参考

ref - spfa
ref2 - dijkstra

标签:杂交,--,边权,dijkstra,建图,给定,AcWing3305,作物
From: https://www.cnblogs.com/ALaterStart/p/17215705.html

相关文章

  • Mockk详解
    简述mockk和mockito类似,都是在测试环境下制造testdouble的测试框架在kotlin环境下mockk比mockito更加优秀mockito在kotlin的缺陷mockito的when方法在kotl......
  • 2019 ICPC Asia-East Continent Final
    D考虑树形DP,记\(f[u],g[u]\)分别为最终回到u/停在子树中的最晚第一次到达u的时间。原本以为在枚举了最后一个的情况下,遍历子树的顺序是以f升序的,(因为只有最后一个不对后面......
  • Java容器之Hashtable源码分析
    一、概述Hashtable是一个比较古老的Map实现类,从它的名称就可以看得出来,因为没有遵循Java的语言规范。它和HashMap很像,同属于散列表,有以下特性:线程安全,这也估计算是唯一......
  • <<高并发系统实战课>> 小记随笔 —— 用户中心案例优化
    案例介绍用户中心的主要功能是维护用户信息、用户权限和登录状态,它保存的数据大部分都属于读多写少的数据。常见的优化方式主要是将用户中心和业务彻底拆开,不再与业务耦......
  • 路飞项目,文件存储,搜索导航栏,搜索接口,搜索页面,支付宝字符介绍,支付宝二次封装,订单表设计
    内容回顾课程相关数据录入simpleui中录入使用sql录入,在meida下图片copy过去课程分类接口查询所有课程接口带排序:人气,价格内置排序类带过滤:course_category=1第三......
  • C - Make Takahashi Happy
    题目大意:左上角走到右下角,经过的路径权值连起来不能有重复,把没有重复的路径的条数加起来输出。我自己写的时候也磕磕绊绊,主要是自己模拟一边,理明白了就好了#include<ios......
  • Rust的安全性和稳健型
    Rust是围绕安全性和稳健性而设计的。也就是,安全代码是不使用unsafe关键字的代码,声音代码是不会导致内存损坏或其他未定义行为的代码。“未定义行为”(UB) 在 C、C++ 和......
  • 逆向工程
    1.软件汉化(.xml .arsc .dex):mt右上角高级搜索(全局搜索)字符 ——>.xml 文件开发者助手界面资源分析——> 点击需要汉化的文本复制,在MT全局搜索同......
  • 统信系统快速开启ssh服务
    systemctl命令设置服务的开机自启,配置sshd允许root登陆,并重启sshd,添加ssh服务到开启自启动,这样一次操作SSH就能正常用了:(1)systemctlenablessh(2)update-rc.dsshena......
  • nacos报错 Caused by: com.alibaba.nacos.api.exception.NacosException: java.io.IOE
    麻麻劈,根据这个报错一顿ulimit -n 修改打开文件数,鸡儿报错一直在。 最终修改 vi/etc/sysctl.conf增加三项:fs.inotify.max_queued_events=32768fs.inotify.ma......