博客
关于我
Codeforces Round #374 (Div. 2) C. Journey(拓扑+DP)(DAG上跑DP)
阅读量:389 次
发布时间:2019-03-05

本文共 628 字,大约阅读时间需要 2 分钟。

代码思路:

  • 动态规划(DP)与拓扑排序结合的最短路径算法

    • **dp[i][j]**表示前i个点中经过j个点的最小花费。
    • 使用了双端队列(队列)进行拓扑排序来处理有向无环图(DAG),确保每个节点在处理时其前置节点已经处理完毕。
    • 在拓扑排序过程中,逐步更新dp数组,并记录前驱节点(pre数组),以便后续路径追溯。
  • 图结构与输入处理

    • 图的节点为1到n,边由输入参数x、y、z表示,边的权重为z。
    • 使用邻接表结构存储图的边信息,每个节点存储其相邻节点及权重。
    • ru数组用于跟踪节点的可访问次数,用于拓扑排序。
  • 递归路径追溯

    • dfs函数从目标节点n和最终答案ans开始,递归追溯路径,输出路径结果。
    • pre数组记录每个dp[i][j]的前驱节点,帮助重建路径。
  • 主函数逻辑

    • 读取输入参数并初始化各变量。
    • 调用tuopu函数进行图的预处理和dp数组的更新。
    • 计算并输出满足条件的最大的i值,即从1到n中最大的i使得dp[n][i] <= T。
    • 调用递归函数输出路径。
  • 优化点:

    • 代码结构:尽量减少不必要的代码,例如注释、空行等,以提高可读性。
    • 变量命名:使用更具描述性的命名,帮助理解代码功能。
    • 函数模块化:将代码分为多个函数,提升代码的可维护性和复用性。

    总结:

    该代码实现了一种结合动态规划和拓扑排序的最短路径算法,适用于有向无环图(DAG)。通过预处理和递归路径追溯,能够高效地找到从起点到终点的最优路径。代码结构清晰,逻辑严谨,适合处理类似的问题。

    转载地址:http://jeewz.baihongyu.com/

    你可能感兴趣的文章
    Nginx配置——不记录指定文件类型日志
    查看>>
    Nginx配置代理解决本地html进行ajax请求接口跨域问题
    查看>>
    Nginx配置参数中文说明
    查看>>
    Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
    查看>>
    Nginx配置如何一键生成
    查看>>
    Nginx配置实例-负载均衡实例:平均访问多台服务器
    查看>>
    NHibernate学习[1]
    查看>>
    NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
    查看>>
    NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
    查看>>
    NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
    查看>>
    Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
    查看>>
    NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
    查看>>
    NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
    查看>>
    NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
    查看>>
    NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
    查看>>
    NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
    查看>>